如何执行Android的RESTful POST请求

问题描述:

我想第一次执行REST Post,我不知道从哪里开始。如何执行Android的RESTful POST请求

我与WordPress REST API互动,并试图利用this端点:/sites/$site/posts/$post_ID/replies/new,用于向某个帖子提交新评论。

我想我对GET请求有很好的掌握,因为我已经成功地处理了其中的几个请求。有了这些,我可以说我需要对服务器对URL进行说明的所有内容,但似乎必须有POST请求的另一个步骤。我的问题是:这个步骤是什么?

我是否将要提交的内容封装到JSONObject中并发布?如果是这样,我该如何发布它?我是否需要以某种方式构造一个语句,类似于我将如何构造一个在数据库上执行的语句?或者确实有可能通过URL传递我的内容作为请求参数?

我知道这个问题在开放式方面有点不足,但我一直无法找到一个很好的教程来回答这些问题。如果您知道一个,请提出建议。

(我做的这一切都在一个Android应用程序)

我的回答是从另外一个答案就在这里见过这样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

您需要在您的服务器上实现脚本,您的POST与该脚本进行交互,并导致该脚本适用于您的数据库。

一个典型的场景是:

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

学习PHP的一个好的起点是在youtube上签出PHPAcademy教程。

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

PHP会以及帮助您进行编码的结果JSON和后返回给你的客户端。