【问题标题】:get and post method in android volley requestandroid volley 请求中的 get 和 post 方法
【发布时间】:2017-02-26 13:52:40
【问题描述】:

我对在 android volley 中发布和获取请求感到困惑。

你能解释一下它们的区别吗?

我可以使用不带参数的 post 方法从 URL 获取 JSON 吗?

【问题讨论】:

标签: android post get android-volley


【解决方案1】:

它们的区别在于服务器中定义的功能。

简单来说,使用 GET 方法,您通过 URL 发送数据。而使用 POST 方法,数据嵌入到表单对象中,并直接从浏览器发送到服务器。 ...我们通常使用 GET 来识别和动态呈现页面并使用 POST 来发送表单数据,但并非总是如此。

你的第二个问题的答案是肯定的,但那不是一个好主意,这样做会更好。这是一个如何使用 Volley 库发送请求的示例

StringRequest request = new StringRequest(Request.Method.POST, "www.example.com", new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {

    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {

    }
}) {
    @Override
    protected Map<String, String> getParams() {
        Map<String, String> parameters = new HashMap<>();
        return parameters;
    }

    @Override
    public String getBodyContentType() {
        return "application/x-www-form-urlencoded; charset=UTF-8";
    }
};
AppController.getInstance().addToRequestQueue(request, tag);

【讨论】:

  • 感谢您的回答,阿米尔。但在这种情况下,我们使用我们的 android 应用程序发送请求,而不是使用浏览器。我们的请求是否例如用户密码显示在任何地方并且使用 get 方法不安全?
  • 在安全领域它们基本上是相同的,但是对于登录、注册和此类操作,最好使用POST方法@S.HosseinEmadi
【解决方案2】:

您是在服务器上工作还是服务器由其他人处理? 通常,在服务器上工作的人决定方法。

如果你在 JAVA 服务器上工作,那么 API 端点是 https://sample.api.someurl.com/userInfo/

为了保持某些一致性,服务器程序员可以使用GET 方法获取用户信息,他可以使用POST 方法更新用户信息,他可以使用DELETE 方法删除现有用户信息。

在此示例中,您的 API 端点保持不变,但请求方法决定该端点的行为方式。

在另一个例子中,为了节省时间,服务器开发人员可能会将所有请求重定向到一个方法并在那里处理,因此无论您调用GETPOSTDELETE API 都会返回相同的响应。

所以是的,不是 Android 或 UI 开发人员单独决定方法,决定使用哪种方法的主要角色由服务器程序员决定。

附:如果你也在服务器上工作,那么好的做法是使用GET 获取信息,POST 方法更新或添加信息,DELETE 删除信息。

【讨论】: