Sử dụng HttpClient
4.1.3, tôi đã viết đoạn mã sau:Apache HttpClient được throwng 500s HTTP nhưng không thể tái tạo trong một trình duyệt
HttpClient httpClient = HttpClientFactory.newHttpClient();
HttpGet httpGet = new HttpGet("some/url/to/hit");
HttpResponse httpResp = httpClient.execute(httpGet);
int statusCode = httpResp.getStatusLine().getStatusCode();
if(statusCode != HttpStatus.SC_OK)
throw new Exception(/* ... */);
Đó là nhận HTTP 500 phản ứng (như được tìm thấy trong httpResp.getStatusLine().getStatusCode()
) từ một URL cụ thể và ném ngoại lệ.
Vấn đề là khi tôi truy cập URL "không" trong trình duyệt, nó chạy hoàn toàn tốt.
Vì vậy, tôi hỏi:
- Could
HttpClient
có thời gian ra ngoài, ngắn mạch các chu kỳ yêu cầu-phản ứng, và chỉ đem lại cho tôi một HTTP 500? - Còn điều gì khác có thể xảy ra ở đây? Làm thế nào có thể cho
HttpClient
được cho tôi 500 khi trình duyệt đang hiển thị trang hoàn toàn tốt cho cùng một URL chính xác?
Xin cảm ơn trước!
Cố gắng gỡ lỗi yêu cầu từ trình duyệt web. Có lẽ điều gây ra vấn đề của bạn là bạn không đặt tiêu đề dự kiến của máy chủ. – deadlock
Máy chủ nào bạn đang truy cập? Bật yêu cầu đăng nhập để xem yêu cầu đến của bạn. Bạn có quyền truy cập vào nhật ký lỗi trên máy chủ không? Nếu nó quay trở lại 500, cần có nhật ký. – jalynn2
@ jalynn2 - làm cách nào để bật tính năng ghi nhật ký yêu cầu? Đây có phải là một cấu trúc HttpClient hoặc bạn đang nói về một cái gì đó giống như giao diện điều khiển của Firebug? – IAmYourFaja