Android Httppost - PullRequest
       7

Android Httppost

3 голосов
/ 02 июля 2011

Привет! Я использую приведенный ниже код для отправки данных на сервер.

 HttpClient httpclient = new DefaultHttpClient();   
 HttpPost httppost = new HttpPost("http://www.myurl.com/app/page.php"); 
// Add your data   
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(5);   
nameValuePairs.add(new BasicNameValuePair("name", "dave"));
nameValuePairs.add(new BasicNameValuePair("taxi no", "354"));
nameValuePairs.add(new BasicNameValuePair("pack", "0"));
nameValuePairs.add(new BasicNameValuePair("exchk", "1"));

try {
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        try {
            HttpResponse response = httpclient.execute(httppost);
            String responseBody = EntityUtils.toString(response.getEntity());

        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }

Я могу успешно отправить данные на сервер, но сервер возвращает больший объем данных (100–200 КБ) в текстовом формате. Я хочучтобы преобразовать этот текстовый ответ в объект json. Поэтому я назначаю весь ответ в одну строку для преобразования объекта json.

Но эта строка ответа содержит только меньшее количество данных.

Я проверилсервер отправляет файл 112 КБ, но эта строка ответа содержит только меньше данных. Например, (50 КБ-75 КБ).

Так что вы можете, пожалуйста, направить меня к решению проблемы

1 Ответ

1 голос
/ 02 января 2012

ArrayList - это расширяемый элемент списка.Поэтому я понятия не имею, какова цель использования «5» в качестве аргумента.Во-вторых, BasicNameValuePair содержит имена и значения в качестве аргументов.Хорошей практикой является использование одного слова для атрибута имени.Удалить

String responseBody = EntityUtils.toString(response.getEntity());

Добавить следующий пример кода

try {
HttpResponse httpResponse = httpClient.execute(httpPost);

InputStream inputStream = httpResponse.getEntity().getContent();

InputStreamReader inputStreamReader = new InputStreamReader(inputStream);

BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

StringBuilder stringBuilder = new StringBuilder();

String bufferedStrChunk = null;

while((bufferedStrChunk = bufferedReader.readLine()) != null){
    stringBuilder.append(bufferedStrChunk);
    }

return stringBuilder.toString();

} catch (ClientProtocolException cpe) {
    System.out.println("First Exception caz of HttpResponese :" + cpe);
    cpe.printStackTrace();
} catch (IOException ioe) {
    System.out.println("Second Exception caz of HttpResponse :" + ioe);
    ioe.printStackTrace();
}

Возвращает содержимое страницы в читаемом формате.Затем вы можете передать его в файл JSON, используя JSONObject и JSONArray.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...