2012-12-31 31 views
0

我期待在這裏的文檔:http://docs.oracle.com/javase/7/docs/api/java/net/URLConnection.html如何設置一個URL連接,POST

,我沒有看到一個選項,以標誌作爲一個POST方法的請求。我期望看到.setRequestMethod("POST");什麼的。我在看錯文檔嗎?

我正在使用Android 4.2和Java 1.6。雖然我不確定javase/1.4.2是我應該找的。

URL url = new URL(this.getUrl()); 
URLConnection connection = url.openConnection(); 
connection.setDoOutput(true); 
connection.setDoInput(true); 
connection.setRequestMethod("POST"); 
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
connection.setRequestProperty("charset", "utf-8"); 
connection.setRequestProperty("Content-Length", "" + Integer.toString(urlParameters.getBytes().length)); 
connection.setUseCaches (false); 
+1

現在要做'connection.getOutpuStream()'和寫入它已經更多的選擇(然後記得'接近()'),和POST將被髮送。 –

回答

1

您需要使用HTTPURLConnection而不是URLConnection

HttpURLConnection類有setRequestMethod

例子:

HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 

注:它始終是更好地使用最新的Javadoc,而不是舊版本,1.4是相當的Java舊版本。

幸得Luigi R. Viggiano

我上面只是回答你如何訪問setRequestMethod交易。如果您不想使用setRequestMethod,但要實現POST,請按照Luigi的建議,您可以忽略調用 setRequestMethod並僅設置setDoOutput(true)。請閱讀tutorial瞭解更多信息。

+0

'new URL(「http:// something」).openConnection()'返回'HTTPURLConnection':'URLConnection'是抽象的。所以與Webnet已經在做的事情沒有什麼不同。 –

+0

@ LuigiR.Viggiano:引用類型是URLConnection,URLConnection沒有任何方法setRequestMethod ...,因此引用類型需要更改爲HTTPURLConnection,這就是我的意思。 – kosa

+0

謝謝,它看起來像實際的答案需要類型轉換...'HttpURLConnection連接=(HttpURLConnection)url.openConnection();' – Webnet

0

你可以使用這個,你有塔的一個帖子發

HttpParams httpParams = new BasicHttpParams(); 
HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLIS); 
HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLIS); 
HttpClient client = new DefaultHttpClient(httpParams); 

HttpUriRequest request = new HttpPost(serverUrl);