Tôi đã nhìn thấy một số mã tìm kiếm thực sự xấu xí từ những người viết lên các phương pháp riêng của họ chuyển đổi một HttpResponse đến một chuỗi để sử dụng sau này, mà trông giống như sau:làm thế nào để tôi nhận được chuỗi từ android phản hồi http của tôi?
httppost.setEntity(new UrlEncodedFormEntity(valuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF8"),8);
StringBuilder sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line="0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
String result = sb.toString();
không chỉ là một chút của một mớ hỗn độn , nhưng nó thực sự xấu xí và tôi thường không thể nói những gì đang xảy ra với mã bởi vì mớ hỗn độn này đứng trước nó. Có cách nào tốt hơn để làm điều này không?
Có một vấn đề với điều này. Nếu đáp ứng được gzipped, điều này sẽ không hoạt động. Bạn phải gọi 'InputStream stream = AndroidHttpClient.getUngzippedContent (response.getEntity());' và sau đó chuyển đổi InputStream thành một chuỗi. Tôi chưa tìm được cách nào tốt hơn. –
có thể hoạt động trong năm 2013, nhưng vào năm 2016 thì không! đây là lỗi của tôi -> Phương pháp đã ném ngoại lệ 'java.lang.IllegalStateException'. – delive