gpt4 book ai didi

java - 在 Android 中获取 400 HTTP 响应的响应正文?

转载 作者:行者123 更新时间:2023-12-01 07:14:03 24 4
gpt4 key购买 nike

我正在与一个无法更改的 API 进行通信,当 API 端未验证请求时,该 API 会发送 400 响应。这是一个有效的HTTP请求,但请求数据未通过应用程序的验证规则。

400 响应包含一个 JSON 负载,其中包含有关请求未通过验证的原因的信息。

我似乎无法获取响应正文,因为抛出了 HttpRequestException。有人知道如何检索这个响应正文吗?

try {
HttpUriRequest request = params[0];
HttpResponse serverResponse = mClient.execute(request);

BasicResponseHandler handler = new BasicResponseHandler();
String response = handler.handleResponse(serverResponse);
return response;
} catch(HttpResponseException e) {
// Threw HttpError
Log.d(TAG, "HttpResponseException : " + e.getMessage());
Log.d(TAG, "Status Code : " + e.getStatusCode());
// TODO API returns 400 on successful HTTP payload, but invalid user data
if(e.getStatusCode() == 400) {
// Information on API error inside Response body
}
}

最佳答案

像这样,使用org.apache.http.util.EntityUtils:

HttpRequestBase base = new HttpGet(url);
HttpResponse response = httpClient.execute(base);
String jsonString = EntityUtils.toString(response.getEntity());

PS:这是盲编码,因为我不知道您尝试过什么。

获取状态代码:

int statusCode = response.getStatusLine().getStatusCode();

获取字节数组中的实体主体:

byte[] data = EntityUtils.toByteArray(response.getEntity());

关于java - 在 Android 中获取 400 HTTP 响应的响应正文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7735893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com