1

我的代码是

HttpClient client = new DefaultHttpClient();
URI uri = URIUtils.createURI(SCHEME, HOST, PORT, path, formatedParams, null);
HttpGet get = new HttpGet(uri);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = client.execute(get, responseHandler);

当我执行此代码并且响应状态为400时,最后一行会引发错误,我无法获得里面应该包含的内容responseBody。如果我通过浏览器 ( Chrome ) 执行相同的请求,我可以看到响应内容。

我希望能够在我的 java 代码中看到响应正文。响应为 200 或 400。

万一,错误是

org.apache.http.client.HttpResponseException:错误请求
    在 org.apache.http.impl.client.BasicResponseHandler.handleResponse(BasicResponseHandler.java:68)
    在 org.apache.http.impl.client.BasicResponseHandler.handleResponse(BasicResponseHandler.java:54)
    在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1070)
    在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1044)
    在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1035)
4

1 回答 1

3

看起来 BasicResponseHandler 无法处理 400。也许可以尝试:

  HttpResponse response = client.execute(get);
  InputStream inputStream = response.getEntity().getContent();
  // TODO Stream to String
于 2013-02-27T07:27:17.350 回答