Groovy 发送post请求发送用户名密码,并获取token数据

姬和歌
2023-12-01
import org.grails.web.json.JSONObject

import java.text.ParseException

class Test {

    public static getTbeatcnyToken() throws ParseException, IOException {

        String url = "http://lhehelwl.com/auth"

        String body = "";

        JSONObject jsonObject = new JSONObject();

        jsonObject.put("username", "1000000");

        jsonObject.put("password", "123456");

        def encoding = "utf-8"

        //创建httpclient对象

        CloseableHttpClient client = HttpClients.createDefault();

//创建post方式请求对象

        HttpPost httpPost = new HttpPost(url);

//装填参数

        StringEntity s = new StringEntity(jsonObject.toString(), "utf-8");

        s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,

                "application/json"));

//设置参数到请求对象中

        httpPost.setEntity(s);

//设置header信息

        //指定报文头【Content-type】、【User-Agent】

        httpPost.setHeader("Content-type", "application/json");

        httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");

//执行请求操作,并拿到结果(同步阻塞)

        CloseableHttpResponse response = client.execute(httpPost);

//获取结果实体

        HttpEntity entity = response.getEntity();

        if (entity != null) {

//按指定编码转换结果实体为String类型

            body = EntityUtils.toString(entity, encoding);

        }

        EntityUtils.consume(entity);

//释放链接

        response.close();

        def parser = new JsonSlurper()

        def jsonObj = parser.parseText(body)

        return jsonObj;

    }


}

 类似资料: