cuốn sách gpt4 ai đã làm

Làm cách nào tôi có thể nhận được lỗi thực tế đằng sau HttpResponseException?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 03:38:00 25 4
mua khóa gpt4 Nike

Tôi đang sử dụng POST phía máy khách Apache HttpComponents cho máy chủ trả về JSON. Vấn đề là nếu máy chủ trả về lỗi 400, tôi dường như không thể biết rằng lỗi đó đến từ Java (cho đến nay tôi đã phải dùng đến trình thám thính gói - thật lố bịch). Đây là mã:

HttpClient httpclient = new DefaultHttpClient();
params.add(new BasicNameValuePair("format", "json"));
params.add(new BasicNameValuePair("foo", bar));

HttpPost httppost = HttpPost mới(uri);
// đây là cách bạn đặt nội dung của yêu cầu POST
httppost.setEntity(UlEncodedFormEntity mới(params, "UTF-8"));

Chuỗi phản hồiBody = "";
thử {
// Tạo trình xử lý phản hồi
ResponseHandler replyHandler = new BasicResponseHandler();
replyBody = httpclient.execute(httppost, replyHandler);
} bắt(HttpResponseException e) {
Lỗi chuỗi = "lỗi không xác định";
if (e.getStatusCode() == 400) {
// TODO replyBody và e.detailMessage ở đây là null,
// mặc dù việc đánh hơi gói tin có thể phát hiện ra phản hồi như
// Mã hóa chuyển giao: chunked
// Kiểu nội dung: application/json
//
// 42
// {"error": "Bạn không có quyền thực hiện thao tác này."}
error = new JSONObject(responseBody).getString("error"); // không hoạt động
}
// e.getMessage() là ""
}

Tôi đã làm gì sai? Phải có một cách dễ dàng để nhận được thông báo lỗi 400. Đây là cơ bản.

câu trả lời hay nhất

Tại sao nên sử dụng BasicResponseHandler()? Người xử lý đang làm việc này cho bạn. Trình xử lý này chỉ là một ví dụ và không nên được sử dụng trong mã thực.

Bạn nên viết trình xử lý của riêng mình hoặc thực hiện cuộc gọi mà không cần trình xử lý.

例如,

        Phản hồi httpResponse = httpClient.execute(request);
int statusCode = reply.getStatusLine().getStatusCode();
Thực thể HttpEntity = reply.getEntity();
phản hồiBody = thực thể.getContent();

if (Mã trạng thái != 200) {
// replyBody sẽ có phản hồi lỗi
}

Về java - Làm cách nào tôi có thể nhận được lỗi thực tế đằng sau HttpResponseException? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/1490341/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress