URLConnection 从 php 服务器收到错误文本
URLConnection receive wrong text from php server
我有一个应用程序有 4 个 activities.in 首先 activity 我想从我的网站(PHP 文件)请求一些文本。我第一次按下按钮获取数据时它工作正常但在下次我按下按钮时,它 returns 一个正确的文本但将它与之前的 text.see 连接起来,例如:
First press: returns: "abc"
Second press: returns: "abcabc" (must be return abc)
Third press: returns: "abcabcabc" (must be return abc)
.
- 我每次都清除文本视图。
- 我每次都关闭连接。
- 我每次都关闭
BufferedReader
。
- 我关闭。
活动 1:
try{
URL u = new URL(uu);
HttpURLConnection con = (HttpURLConnection) u.openConnection(Proxy.NO_PROXY);
con.setDoOutput(true);
con.setUseCaches(false);
PrintStream pr = new PrintStream(con.getOutputStream());
pr.print("code=3&arg1=" + str);
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"UTF-8"));
String l;
while ((l=br.readLine())!=null){
z = z + "\n" + l;
}
br.close();
pr.close();
con.disconnect();
runOnUiThread(new Runnable() {
@Override
public void run() {
TextView tx = (TextView) findViewById(R.id.textView2);
tx.setMovementMethod(new ScrollingMovementMethod());
tx.setText("");
tx.setText(z);
}
});
}
catch (final Exception ex){
}
我没看到你在哪里声明了 z
字符串,但你显然是在附加它。
您应该清除它,或者为每个请求使用新的字符串。
并使用 StringBuilder
。你的内存使用率会低得多。
我有一个应用程序有 4 个 activities.in 首先 activity 我想从我的网站(PHP 文件)请求一些文本。我第一次按下按钮获取数据时它工作正常但在下次我按下按钮时,它 returns 一个正确的文本但将它与之前的 text.see 连接起来,例如:
First press: returns: "abc"
Second press: returns: "abcabc" (must be return abc)
Third press: returns: "abcabcabc" (must be return abc)
.
- 我每次都清除文本视图。
- 我每次都关闭连接。
- 我每次都关闭
BufferedReader
。 - 我关闭。
活动 1:
try{
URL u = new URL(uu);
HttpURLConnection con = (HttpURLConnection) u.openConnection(Proxy.NO_PROXY);
con.setDoOutput(true);
con.setUseCaches(false);
PrintStream pr = new PrintStream(con.getOutputStream());
pr.print("code=3&arg1=" + str);
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"UTF-8"));
String l;
while ((l=br.readLine())!=null){
z = z + "\n" + l;
}
br.close();
pr.close();
con.disconnect();
runOnUiThread(new Runnable() {
@Override
public void run() {
TextView tx = (TextView) findViewById(R.id.textView2);
tx.setMovementMethod(new ScrollingMovementMethod());
tx.setText("");
tx.setText(z);
}
});
}
catch (final Exception ex){
}
我没看到你在哪里声明了 z
字符串,但你显然是在附加它。
您应该清除它,或者为每个请求使用新的字符串。
并使用 StringBuilder
。你的内存使用率会低得多。