Android上的BufferedReader切断了我的HTTP帖子?
使用一个基本的Http Post示例Android上的BufferedReader切断了我的HTTP帖子?,android,http,http-post,bufferedreader,Android,Http,Http Post,Bufferedreader,使用一个基本的Http Post示例 try { // Construct data String data = URLEncoder.encode("param", "UTF-8") + "=" + URLEncoder.encode(param, "UTF-8"); data += "&" + URLEncoder.encode("param", "UTF-8") + "=" + URLEncoder.encode(param, "UTF-8"); d
try {
// Construct data
String data = URLEncoder.encode("param", "UTF-8") + "=" + URLEncoder.encode(param, "UTF-8");
data += "&" + URLEncoder.encode("param", "UTF-8") + "=" + URLEncoder.encode(param, "UTF-8");
data += "&" + URLEncoder.encode("param", "UTF-8") + "=" + URLEncoder.encode(param, "UTF-8");
data += "&" + URLEncoder.encode("param", "UTF-8") + "=" + URLEncoder.encode(param, "UTF-8");
// Send data
URL url = new URL("URL THAT IM SEARCHING");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
json = rd.readLine();
Log.d("TAG",json);
wr.close();
rd.close();
} catch (Exception e) { }
我在安卓系统中的响应比在安卓系统之外甚至在浏览器中运行时得到的响应要短得多
android中的最大响应大小约为4070字节,而实际为14000+
我尝试将缓冲区大小设置为14200,但响应仍然保持不变
编辑下面的新代码(切换到https并尝试了建议的解决方案),仍然得到~4070 bye响应
String getUrl = ("https:.asdadasd/"+trimmed+"?latitude="+lat+"&longitude="+lng+"&distance="+rad);
Log.d("TAG","URL USED FOR SEARCHING: "+getUrl);
HttpClient client = new MyHttpClient(getApplicationContext());
HttpGet get = new HttpGet(getUrl);
HttpResponse responseGet = null;
try {
responseGet = client.execute(get);
HttpEntity resEntityGet = responseGet.getEntity();
InputStream instream = resEntityGet.getContent();
String result= convertBrToString(instream);
json = result;
instream.close();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.d("TAG", json);
}
public String convertBrToString(InputStream in)
{
BufferedReader br;
StringBuffer outString = new StringBuffer();
br = new BufferedReader(new InputStreamReader(in));
try {
String read;
read = br.readLine();
while(read != null)
{
outString.append(read);
read =br.readLine();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return outString.toString();
}
事实证明,我从来没有做过转换!简单的
ResponseHandler<String> responseHandler=new BasicResponseHandler();
String responseBody = client.execute(get, responseHandler);
ResponseHandler ResponseHandler=new BasicResponseHandler();
String responseBody=client.execute(get,responseHandler);
我做了这个技巧,但问题是日志只会输出4096字节,而且我的json解析器得到了错误数组的长度
谢谢大家的支持,记得仔细检查一下你的代码 还有谁有建议吗!?