2013-04-08 152 views
5

我想第一次執行REST Post,我不知道從哪裏開始。如何執行Android的RESTful POST請求

我與WordPress REST API互動,並試圖利用this端點:/sites/$site/posts/$post_ID/replies/new,用於向某個帖子提交新評論。

我想我對GET請求有很好的掌握,因爲我已經成功地處理了其中的幾個請求。有了這些,我可以說我需要對服務器對URL進行說明的所有內容,但似乎必須有POST請求的另一個步驟。我的問題是:這個步驟是什麼?

我是否將要提交的內容封裝到JSONObject中併發布?如果是這樣,我該如何發佈它?我是否需要以某種方式構造一個語句,類似於我將如何構造一個在數據庫上執行的語句?或者確實有可能通過URL傳遞我的內容作爲請求參數?

我知道這個問題在開放式方面有點不足,但我一直無法找到一個很好的教程來回答這些問題。如果您知道一個,請提出建議。

(我做的這一切都在一個Android應用程序)

回答

7

我的回答是從另外一個答案就在這裏見過這樣Sending POST data in Android,但香港專業教育學院剪切和過去這裏conveneience答案直取,希望這有助於

來自Apache Commons的Http客戶端是最好的選擇。它已經包含在android中。以下是一個簡單的使用HTTP Post的例子。

public void postData() { 
    // Create a new HttpClient and Post Header 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php"); 

    try { 
     // Add your data 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
     nameValuePairs.add(new BasicNameValuePair("id", "12345")); 
     nameValuePairs.add(new BasicNameValuePair("stringdata", "Hi")); 
     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 
    } 
} 
+0

你可以嘗試複製和粘貼它沒有錯誤... – Inoy 2016-04-07 21:59:32

0

您需要在您的服務器上實現腳本,您的POST與該腳本進行交互,並導致該腳本適用於您的數據庫。

一個典型的場景是:

的Java HTTP POST ~~~> PHP ~~~~>的MySQL。

學習PHP的一個好的起點是在youtube上籤出PHPAcademy教程。

http://www.youtube.com/course?list=EC442FA2C127377F07

PHP會以及幫助您進行編碼的結果JSON和後返回給你的客戶端。