如何从Android执行RESTful POST请求

如何从Android执行RESTful POST请求,android,Android,我第一次尝试执行REST Post,但我不知道从哪里开始 我正在和端点进行交互,并试图利用端点:/sites/$site/posts/$post\u ID/repress/new,该端点用于向某个帖子提交新评论 我想我已经很好地掌握了GET请求,因为我已经成功地处理了其中的几个请求。有了这些,我可以说我需要对服务器说的关于URL的所有话,但似乎在POST请求方面还需要另一个步骤。我的问题是:这一步是什么 我是否将要提交的内容包装到JSONObject中并发布?如果是,我该如何发布?我是否需要以某

我第一次尝试执行REST Post,但我不知道从哪里开始

我正在和端点进行交互,并试图利用端点:
/sites/$site/posts/$post\u ID/repress/new
,该端点用于向某个帖子提交新评论

我想我已经很好地掌握了GET请求,因为我已经成功地处理了其中的几个请求。有了这些,我可以说我需要对服务器说的关于URL的所有话,但似乎在POST请求方面还需要另一个步骤。我的问题是:这一步是什么

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

我知道这个问题有点过于开放,但我一直找不到一个好的教程来回答这些问题。如果你知道,请推荐


(我在安卓应用程序中完成了这一切)

我的答案是直接从这里看到的另一个答案中提取出来的,但为了方便起见,我删去了这里的答案,希望这能有所帮助

ApacheCommons的Http客户机是一个不错的选择。它已经包含在android中。下面是一个简单的示例,说明如何使用它进行HTTPPOST

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
    }
} 
public void postData(){
//创建一个新的HttpClient和Post头
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“http://www.yoursite.com/script.php");
试一试{
//添加您的数据
List nameValuePairs=新的ArrayList(2);
添加(新的BasicNameValuePair(“id”,“12345”);
添加(新的BasicNameValuePair(“stringdata”、“Hi”);
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
//执行HTTP Post请求
HttpResponse response=httpclient.execute(httppost);
}捕获(客户端协议例外e){
//TODO自动生成的捕捉块
}捕获(IOE异常){
//TODO自动生成的捕捉块
}
} 

您需要在服务器上实现一个脚本,您的帖子将与该脚本交互,并插入该脚本与您的数据库一起工作

典型的情况是:

JavaHTTPPOST~~~>PHP~~~~>MySql

学习PHP的一个很好的起点是在youtube上查看PHPAcademy教程

PHP还将帮助您将结果编码为JSON,并将其发送回您的客户机