2016-07-19 4 views
0

첫 번째 활동이 4 개있는 앱이 있습니다. 내 웹 사이트 (PHP 파일)에서 일부 텍스트를 요청하고 싶습니다. 내가하지만 버튼을 눌러 다음 번에 잘 작동 데이터를 얻을 버튼을 누르면 처음으로, 그것은 올바른 텍스트를 반환하지만 이전 text.see으로 예를 연결합니다 :URLConnection이 PHP 서버에서 잘못된 텍스트를 수신합니다.

First press: returns: "abc" 
Second press: returns: "abcabc" (must be return abc) 
Third press: returns: "abcabcabc" (must be return abc) 
. 
  1. I 일반 텍스트를 매번보기.
  2. 매번 연결을 닫습니다.
  3. 매번 BufferedReader를 닫습니다.
  4. 나는 닫는다.

activity1에 : 당신이 z 문자열을 선언 어디 표시되지 않습니다

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){ 
} 
+1

while 루프 앞에 'z = "";'를 추가하십시오. –

+0

입력을 받기 전에'PrintStream'을 플러시해야 할 수도 있습니다. 나는 이것을 위해'print()'보다는'write()'를 사용할 것이다. – EJP

답변

1

,하지만 당신은 분명히에 추가된다.

각 요청마다 새 문자열을 지우거나 지워야합니다.

그리고 StringBuilder을 사용하십시오. 메모리 사용량이 훨씬 적습니다.

+0

대단히 감사합니다 .StringBuilder가 작동합니다. –

+0

나는 초보자입니다. –

관련 문제