Tôi đã có ứng dụng Android của mình sử dụng HttpClient để tiếp cận servlet được triển khai trên Tomcat của tôi. Nó được cài đặt trên HTC Magic của tôi.HttpClient trên Android: NoHttpResponseException thông qua UMTS/3G
Nếu tôi khởi chạy nó khi được kết nối trên Wifi: nó hoạt động. Nếu tôi khởi động nó khi kết nối với 3G (mạng dữ liệu GSM): nó không hoạt động nhưng servlet của tôi đã đạt được. Nói một cách khác, có vẻ như điện thoại của tôi không bao giờ có được câu trả lời:
Technical problem while receiving response.
org.apache.http.NoHttpResponseException: The target server failed to respond
at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:85)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:174)
at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:179)
at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235)
at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:410)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
Nếu tôi sử dụng các trình duyệt web thông qua 3G để kích hoạt trang kiểm tra HTML được đóng gói với servlet của tôi, nó đạt đến servlet cùng với thành công (trang nhận được phản hồi).
Làm cách nào để gỡ lỗi HttpClient hoặc yêu cầu xóa tất cả mọi thứ?
Có ai đó có manh mối về những gì đang xảy ra không?
Bạn đã kiểm tra nhật ký máy chủ của mình để xem liệu yêu cầu có được thực hiện qua dây không? Nếu có, nhật ký của bạn có cho bạn biết điều gì không (ví dụ: lỗi phía máy chủ)? – CommonsWare
Máy chủ nhận yêu cầu (rất nhanh) và đưa ra một phản hồi thành công, theo cách rất giống với yêu cầu khi đến trên wifi. Sẽ hiệu quả hơn nếu có thể gỡ lỗi HttpClient ... Ngoại lệ được ném sau một thời gian dài, nhiều hơn hoặc ít hơn 10 phút, vì vậy tôi đoán, không có gì thực sự quay lại thiết bị. Nếu đúng, cái gì đó đang mất phản ứng của tôi trong không khí. Mạng GSM của tôi có thể lọc không? – Hubert
Thật thú vị, có một máy chủ mực được cài đặt trên proxy.cwg.net có vẻ là nguyên nhân. Nhưng tại sao nó hoạt động với trang HTML thử nghiệm và không phải với HttpClient trong cùng một điều kiện? – Hubert