EntityUtils.toString(httpResponse.getEntity(), "UTF-8") 为什么我执行这个方法,返回启动却是我的请求参数
时间: 2024-04-03 07:36:17 浏览: 156
如果使用EntityUtils.toString(HttpEntity entity, Charset charset)方法将响应实体转换成字符串,而不是获取响应流的话,那么你得到的就是响应实体的内容,而不是请求参数。
请确保你传递给HttpClient.execute()方法的是HttpGet或HttpPost请求对象,并且你为该请求对象设置了正确的参数,例如:
```java
// 创建HttpClient对象
CloseableHttpClient httpClient = HttpClients.createDefault();
// 创建HttpGet请求对象
HttpGet httpGet = new HttpGet("http://www.example.com");
// 设置请求参数
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("name", "Tom"));
params.add(new BasicNameValuePair("age", "20"));
String queryString = URLEncodedUtils.format(params, "UTF-8");
httpGet.setURI(new URI(httpGet.getURI().toString() + "?" + queryString));
// 发送HTTP GET请求
CloseableHttpResponse httpResponse = httpClient.execute(httpGet);
// 获取响应实体
HttpEntity entity = httpResponse.getEntity();
// 将响应实体转换成字符串
String responseBody = EntityUtils.toString(entity, "UTF-8");
```
上面的代码中,我们创建了一个HttpGet请求对象,并设置了请求参数(name=Tom&age=20)。然后我们发送HTTP GET请求,获取响应实体,并将响应实体转换成字符串。此时,你得到的就是响应实体的内容,而不是请求参数。
阅读全文