我如何输出以控制请求的正文

时间:2019-05-29 15:05:49

标签: java http httpclient

无法输出到控制台“ POST”请求正文

HttpClient client= HttpClientBuilder.create().build();
HttpPost request=new HttpPost("https://reqres.in/api/register");
 List<NameValuePair> params= new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair("email","eve.holt@reqres.in"));
    params.add(new BasicNameValuePair("password","pistol"));
    request.setEntity(new UrlEncodedFormEntity(params));
HttpResponse response = client.execute(request);

我想查看请求的正文(电子邮件,密码)。

我尝试过     System.out.println(request.getEntity()) 但这并不完全相同

1 个答案:

答案 0 :(得分:0)

Apache httpclient以HttpPost的形式创建一个模型,这不是原始请求。当您execute()时,它会在内部转换为HTTP有效负载并进行处理,然后再次将响应作为建模对象显示给您。

您可以使用Wire logger:org.apache.http.wire记录请求和响应。这里的更多信息:https://hc.apache.org/httpcomponents-client-4.5.x/logging.html

原始数据似乎在org.apache.commons.httpclient.HttpConnection中可用,但是您必须重写httpclient的相当多组件才能将其获取。