2014-11-01 22 views
1

我在這個Java函數所面臨的問題,我想從我的表到服務器發佈數據,但無法發佈,因爲我得到已經連接錯誤錯誤異常:已經連接在後期製作方法的Java的HttpURLConnection的

只有第一條記錄張貼

public int myfuction(){ 

    try{ 

    String url = "myurl/page.php"; 
    String urlParameters=null; 
    URL obj = new URL(url); 
    HttpURLConnection con = (HttpURLConnection) obj.openConnection(); 

    //add reuqest header 
    con.setRequestMethod("POST"); 
    con.setRequestProperty("User-Agent", USER_AGENT); 
    con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); 

     Cursor c1 = db.rawQuery("SELECT * FROM temtable ", null); 
     String id = null; 
     if (c1 != null) { 
      if (c1.moveToFirst()) { 
      do { 
       suid = c1.getString(c1.getColumnIndex("puid")); 
       urlParameters ="text=STAT=1,DEVICEID=10,TERMINALID="+terminal+",USERID="+id; 
       // 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; 
       StringBuffer response = new StringBuffer(); 

       while ((inputLine = in.readLine()) != null) { 
        response.append(inputLine); 
       } 
       in.close(); 
       //con.disconnect(); 
       Toast.makeText(this, "Send Para-"+urlParameters, Toast.LENGTH_SHORT).show(); 
       pstatus = 1; 
      }while (c1.moveToNext()); 
      } 
      } 

     con.disconnect(); 

    Toast.makeText(this, "Send Success", Toast.LENGTH_SHORT).show(); 
} 
    catch(Exception ex) 
    { 
     Toast.makeText(this, "Error:"+ ex.getMessage(), Toast.LENGTH_SHORT).show(); 
    } 

    return 1; 
    } 

這是我在用,請幫助...

+1

顯示烏爾logcat的文件 – 2014-11-01 05:41:10

+0

在發佈數據的一個,當我點擊該按鈕事件得到這個 11-01 11:20:29.474:V/webview(26555):NO_FAST_DRAW = FALSE 11-01 11:20:29.544:V/webview(26555):singleCursorHandlerTouchEvent -getEditableSupport FASLE 11-01 11:20:32.804 :D/dalvikvm(26555):GC_CONCURRENT已釋放957K,23%免費7272K/9415K,暫停3ms + 4ms – 2014-11-01 05:47:29

+0

@WIZARD首先「urlParameters」在服務器上發佈並接收...但接下來顯示已連接 – 2014-11-01 05:51:28

回答

2

你需要通過URL.openConnection()創建一個新的HttpURLConnection內循環,每一次。你正嘗試做連接池,但HttpURLConnection已經爲你做了。當您完成最後一次迭代時,請致電disconnect()提供此連接可以關閉的提示。

+0

我認爲烏爾回答適合他。 +1 – 2014-11-01 06:47:14

-1

我已經試過這個片段中,同時循環本身就對我的工作和斷開每次

但是這是不好的做法連接和斷開它加載有這麼多的請求,服務器每一個請求

String url = "myurl/page.php"; 
String urlParameters=null; 
URL obj = new URL(url); 
HttpURLConnection con = (HttpURLConnection) obj.openConnection(); 

//add reuqest header 
con.setRequestMethod("POST"); 
con.setRequestProperty("User-Agent", USER_AGENT); 
con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); 

那麼,有沒有另一種解決方案,以便只有一次我可以連接,並通過一個連接

+0

不,這不是不好的做法,我已經告訴過你爲什麼。它當然不會創建比原始代碼更多的請求。 – EJP 2014-11-01 07:02:14

相關問題