Java(25):HttpClient发起请求中文数据乱码问题解决 您所在的位置:网站首页 post请求参数乱码 Java(25):HttpClient发起请求中文数据乱码问题解决

Java(25):HttpClient发起请求中文数据乱码问题解决

2024-03-31 06:22| 来源: 网络整理| 查看: 265

原因:再做接口自动化测试过程中,发现发送POST请求时,请求成功后,新增的角色描述有中文,新增成功后出现乱码。

解决方法:在POST方法初始化StringEntity时指定UTF-8

原来代码如下:

public static HttpClientResult doPost(String url, String jsonstr,String token) throws Exception { CloseableHttpClient httpClient = null; CloseableHttpResponse httpResponse=null; String result=""; try { //1.创建httpClient对象 //httpClient = HttpClients.createDefault(); httpClient =createHttpsClient(filePath,passWord); //2.创建httpPost对象 HttpPost httpPost = new HttpPost(url); //2.1对象设置请求头 httpPost.setHeader("Content-Type", "application/json;charset=UTF-8"); httpPost.setHeader("Authorization",token); //2.2对象设置请求和传输超时时间 RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(SOCKET_TIME_OUT).setConnectTimeout(CONNECT_TIME_OUT).build(); httpPost.setConfig(requestConfig); //2.3对象设置请求参数 //httpPost.setEntity(new StringEntity(json.toString())); httpPost.setEntity(new StringEntity(jsonstr)); //3.使用httpClient发起请求并响应获取repsonse return getHttpClientResult(httpResponse,httpClient,httpPost); /* httpResponse = httpClient.execute(httpPost); HttpEntity entity = httpResponse.getEntity(); //4.解析响应,获取数据 //判断状态码是否是200 if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { result = EntityUtils.toString(entity,ENCODING); } } finally { //5.释放资源 release(httpResponse,httpClient); } }

修改如下,在初始化StringEntity时指定UTF-8:

httpPost.setEntity(new StringEntity(jsonstr,"UTF-8"));



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有