您好我正在使用以下代码将数据发送到服务器
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();
}
我可以成功地将数据发送到服务器,但服务器以文本格式返回更大量的数据(100Kb-200KB)。我想将该文本响应转换为json object.so我将所有响应分配到一个字符串中转换json对象。
但是,该响应字符串只包含较少的数据。
我检查了它发送112kb文件的服务器,但该响应字符串只包含较少的data.say(50kb-75kb)。
所以请任何人指导我解决问题
答案 0 :(得分:1)
ArrayList是一个可扩展的List项。所以我不知道使用&#34; 5&#34;的目的是什么?作为一个论点。第二件事是BasicNameValuePair包含名称和值作为参数。将单个单词用于name属性是一种很好的做法。删除
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();
}
以可读格式返回页面内容。然后,您可以使用JSONObject和JSONArray将其传递给JSON文件。