【问题标题】:How to execute RESTful POST requests from Android如何从 Android 执行 RESTful POST 请求
【发布时间】:2013-04-08 03:05:37
【问题描述】:

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

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

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

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

我知道这个问题对于 SO 来说有点开放,但我一直无法找到一个很好的教程来回答这些问题。如果你知道一个,请推荐它。

(我在 Android 应用程序中完成这一切)

【问题讨论】:

    标签: android


    【解决方案1】:

    我的答案直接取自这里看到的另一个答案Sending POST data in Android,但为了方便起见,我在这里删减并过去了答案,希望这会有所帮助

    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
        }
    } 
    

    【讨论】:

      【解决方案2】:

      您需要在您的服务器上实现一个脚本,您的 POST 与该脚本交互,然后该脚本与您的数据库一起工作。

      一个典型的场景是:

      Java HTTP POST ~~~~> PHP ~~~~> MySql。

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-29
        • 1970-01-01
        • 2019-06-05
        • 1970-01-01
        • 2021-04-28
        • 2016-09-08
        • 1970-01-01
        相关资源
        最近更新 更多