2012-06-30 152 views
0

我工作在我的第一個Android應用程序上,並且嘗試進行HTTP POST請求和接收響應時遇到了一些問題。這些都是幾個事實:最終無法執行HTTP POST請求

  1. 我有INTERNET權限在AndroidManifest.xml: <uses-permission android:name="android.permission.INTERNET" />
  2. 我嘗試了許多解決方案。使用URLConnection或HttpURLConnection的解決方案不起作用,因爲它們返回空字符串。 HttpClient和HttpPost的解決方案在execute()上失敗 - 我在Google上搜索了一個小時,但沒有找到如何解決這個問題。
  3. There is internet connection。但我不知道如何解決我的問題,最後到發送HTTP POST請求。

UPD:例如此代碼使我的程序崩潰:

public static APIResponse getResponse(String action, Map<String, String> params) throws IOException { 
    // Create a new HttpClient and Post Header 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("http://google.com"); 

    try { 
     // Add your data 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
     nameValuePairs.add(new BasicNameValuePair("id", "12345")); 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     // Execute HTTP Post Request 
     HttpResponse response = httpclient.execute(httppost); 

    } catch (ClientProtocolException e) { 
     // TODO Auto-generated catch block 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
    } 
    return null; 
} 

UPD 2:它的工作原理我的手機上,而在仿真器不工作!如何修復模擬器上的行爲?

upd 3:固定。

+1

首先你可以把你的代碼放在這裏,這樣人們可以幫助你解決問題,它可能只是一個簡單的UrlEncoding或簡單的客戶端配置。 – IamStalker

+0

好的,我更新了這篇文章。 – Uhehesh

+0

完全重複:http://stackoverflow.com/questions/3505930/make-in-http-request-with-android –

回答

1

看那example for HTTP Post

你也應該採用fiddler2幫助調試您的HTTP消息。

另請注意,您沒有正確捕獲所有異常......您可以在最後添加一個通用catch語句以防止您的應用程序崩潰並幫助您找出問題所在。可能是暫停或類似。

+0

太慢了。我已經解決了一個問題。 – Uhehesh

+1

你的評論表明你仍然有一個崩潰的問題...添加一個通用的excpetion捕獲將防止發生。使用日誌語句來查明正在發生的事情。 – Merlin