2012-05-28 168 views
0

我需要發送HTTPS使用參數其中之一是URL請求的服務器: 接下來我做的:與URL HTTP POST請求的參數

HttpClient httpClient = new DefaultHttpClient(); 
    HttpPost httpPost = new HttpPost(APIURL); 
    httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded"); 
    List<NameValuePair> params = new ArrayList<NameValuePair>(); 
    params.add(new BasicNameValuePair("url", "https://api/v1/pictureadress/id")); 
... 

而且我得到了錯誤時添加網址參數。但如果我添加除url之外的其他參數,如年齡,性別等,我沒有任何錯誤。我做錯了什麼?

+3

你的URL是錯誤的:'HTPPS://'應該是'的https://'。 – fredley

+0

這不是真實的網址,它是例如。網址是100%有效的,我在瀏覽器中檢查過。 –

+0

錯誤是什麼? –

回答

0

我沒有接觸到apache組件庫。但看看BasicNameValuePair上的API,我明白輸入的名稱和值是原始存儲的,而不是編碼的。我擔心這就是爲什麼你的url參數值產生錯誤的原因。您可能需要UrlEncodedFormEntity,除非已經用於處理url編碼名稱值對。

0

試試這個..

public void postData() throws Exception { 


HttpClient client = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost("http://www.xyz.com"); 

List<NameValuePair> list = new ArrayList<NameValuePair>(1); 

list.add(new BasicNameValuePair("name","ABC"); 

httppost.setEntity(new UrlEncodedFormEntity(list)); 

HttpResponse r = client.execute(httppost); 

}