我在我的应用程序和我的常见Java测试中使用HttpUrlConnection
并且我实现了一个方法,并且该方法(两者都很常见,因此,相同!!!)以另一种方式在Android案例中表现。
他们两个都可以从服务器接收相同的响应,但在Java测试中我可以显示此响应,而在Android应用程序中将其分为3200个字符。
这是我的代码
private String sendPost() throws Exception{
String url = "http://www.something.com/my_page.jsp?";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
//add request header
con.setRequestMethod("POST");
String urlParameters ="param1=val1¶m2=val2";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// return result
Log.i("TAG", "sendPost:: Response length : " + response.length()); // <- This line returns the same length!!!
return response.toString();
}
我可以从类con
HttpUrlConnection
,ContentLength
等ContentType
获得此对象,但在这两种情况下都是相同的,因此我怀疑,那里必须是Android中String
/ StringBuffer
的实习生设置/参数,这可以区分这些情况,但我不知道是什么。 readLine
读取相同或至少相同数量的chars
,因为在两种情况下,响应的长度都相同。
如果你能说我,那就错了,我会非常感激。
亲切的问候
答案 0 :(得分:4)
我无法理解你对症状的描述;即为什么你认为某事被截断。
但是,我可以向您保证,这不是由于String
或StringBuffer
的长度限制。
这两个类确实有限制,但它是2**31
(即> 20亿)个字符。在缓冲区变大之前,通常会得到OutOfMemoryError
。