2014-04-27 19 views
3

我想下面的數據發送到服務器使用Jsoup的Android

{"feedback":{"q1":12.0, "q2":33, "q3":12.0, "q4":78, "q5":12.0, "q6":33, "q7":12.0, "q8":33, "q9":12.0, "q10":33, "latitude":12.0, "longitude":33.08, "imei":128790, "time":"base64string"}} 

我無法創建合適的jsoup字符串將數據發送到服務器。我能夠連接到我的服務器,但是當我嘗試使用POST請求發送以下信息時。它失敗。

我試圖通過我的WEB控制檯發送相同的請求,並且它在那裏也工作得很好。

下面是我的代碼:

 protected String doInBackground(String... urls) { 

       try { 
        // Connect to the web site 
        Document document = Jsoup.connect("http://107.170.91.100/books/save_feedback") 
          .data("q1", q1).data("q2", q2).data("q3", q3).data("q4", q4).data("q5", q5).data("q6", q6).data("q7", q7).data("q8", q8) 
          .data("q9", q9).data("q10", q10) 
          .data("latitude", "234").data("longitude", "344.4").data("imei", ime) 
          .data("time", MainActivity.b64) 
          .post(); 


        //String title = document.title(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
       return null; 

     } 

我失去的是什麼?我猜我發送的數據格式不正確。我是否需要在數據中添加單詞反饋?如果服務器需要一個JSON字符串 任何幫助,將不勝感激

回答

0

,試試這個來代替:

// Build the JSON string... 
String format = "{\"feedback\":{\"q1\":%s, \"q2\":%s, \"q3\":%s, \"q4\":%s, \"q5\":%s, \"q6\":%s, \"q7\":%s, \"q8\":%s, \"q9\":%s, \"q10\":%s, \"latitude\":%s, \"longitude\":%s, \"imei\":%s, \"time\":\"%s\"}}"; 
String jsonData = String.format(// 
      format, // 
      q1, q2, q3, q4, q5, // 
      q6, q7, q8, q9, q10, // 
      "234", "344.4", // 
      ime, time // 
); 

// Now send it... 
Document document = Jsoup 
        .connect("http://107.170.91.100/books/save_feedback") 
        .data("JSON", jsonData) // The parameter name may not be JSON, change accordingly 
        .post(); 
+0

感謝亞歷克斯,我已經想通了,但是你的答案是正確的,所以我接受它 –