2012-10-10 36 views
0

我使用POST方法將一個請求連同一個字符串一起作爲參數發送給一個web服務。如何從HttpPost對象讀取數據?

例如: -

HttpPost httpPost = new HttpPost(http://www.google.com/gmail/getpictures.php);//sample URL (not working) 

我還與Web服務URL一起發送一個字符串

tmp = new StringEntity(data,"UTF-8");//data is any string 
tmp.setContentEncoding(new BasicHeader("Content-type", "application/json")); 
httpPost.setEntity(tmp); 

我送使用

response = httpClient.execute(httpPost); 

我想打印什麼要求在httpPost對象中,知道我是否將正確的數據發送到服務器。 HttpPost.toString()不適合我。任何人都知道如何將httpPost對象轉換爲字符串,以便我可以在LOGCAT上打印它?

+0

問題是有點奇怪。您正在數據對象中發送JSON數據。你到底想看什麼?格式化發送到服務器的請求? –

+0

雅這很奇怪。實際上,我正在將SQL查詢作爲字符串連同其URL一起發送到服務器。但我得到的答覆是失敗的。所以我想看到的是我是否以正確的方式發送查詢?所以我想看到它在logcat之前響應= httpClient.execute(httpPost); – Ani

+0

好的。問題是你的字符串包含空間。 http://www.androidhive.info/2011/10/android-making-http-requests/這會幫助你。 –

回答

1

您需要從響應中獲取內容。

InputStream inputstream = response.getEntity().getContent(); 
BufferedReader rd = new BufferedReader(new InputStreamReader(inputstream)); 

現在讀取來自rd的數據。

+0

我知道。但是這是一個迴應,我想打印我發送的數據,而不是從響應中獲得的數據。我不知道我是否以正確的方式發送數據? – Ani

+0

然後只需檢查服務器是否正確寫入。 或者在重新發送接收數據並檢查之後。 – jay

+0

我得到的答覆是失敗。 – Ani

1

試試這個代碼

DefaultHttpClient hc = new DefaultHttpClient(); 
              ResponseHandler<String> res = new BasicResponseHandler(); 
String response = hc.execute(postMethod,res); 
System.out.println(responce); 
+0

請參閱。我對響應數據不感興趣。我對我發送的數據感興趣。是否正確。從你的代碼我想打印不是響應的hc對象的數據。 – Ani

+0

如果服務器的響應是正確的,那麼你發送正確的數據,否則錯誤 –

+0

這就是爲什麼我想在發送前檢查它。 – Ani

1

試試這個

String response = httpclient.execute(httppost, responseHandler);