【发布时间】:2023-03-12 14:58:01
【问题描述】:
我在 laravel 中写了一个 API,用于接受 POST 请求接收参数并保存在 DB 中。
成功时,它会返回一个 json,返回订单 ID(Http 响应代码 200)
{
"data": {
"order_id": 21
}
}
在将数据保存到 DB 之前,我会验证数据,如果有 错误,它会返回错误消息 json(Http 响应代码 400)
{
"error": {
"code": "GEN-WRONG-ARGS",
"http_code": 400,
"message": {
"cust_id": [
"The cust id may not be greater than 9999999999."
]
}
}
}
在浏览器中运行良好
在 Android 通话中,如果一切正常,例如http 响应代码 200 我得到了 json。
但是当返回错误 json 时,我从未收到错误 json,getInputStream() 返回 null。
private InputStream downloadUrl(String urlString) throws IOException {
// BEGIN_INCLUDE(get_inputstream)
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod("GET");
conn.setDoInput(true);
// Start the query
conn.connect();
InputStream stream = conn.getInputStream();
return stream;
// END_INCLUDE(get_inputstream)
}
- 如果出现错误,如何将响应代码更改为 200 并在 Laravel 中发送,然后获取错误 json。
- 或在 Android 中即使有响应代码如 400 或 404,我也能收到 http 正文,就像浏览器一样
1 是一种解决方法,2 是正确的方法。
谢谢,
K
【问题讨论】:
-
有人可以帮忙吗?