Android Volley如何使用volley在POST请求中使用其他参数发送用户名和密码

时间:2016-07-10 07:22:45

标签: android android-volley restful-url

我有一个完美的curl命令 curl --request POST --user xyz@mail.com:password http://localhost:8080/api/uploadmydata -d' param1 = 300'

但是我无法用截击做同样的事情。 我目前的代码是:

public static void tryUploading(final Activity activity){

    StringRequest stringRequest = new StringRequest(Request.Method.POST, BackendConnection.uploadDataUrl,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {

                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    //textPrompt.setText("Wrong User name or Password");
                }
            }){
        @Override
        public Map<String, String> getHeaders() {
            Map<String, String> params = new HashMap<String, String>();
            params.put(
                    "Authorization",
                    String.format("Basic %s", Base64.encodeToString(
                            String.format("%s:%s", "xyz@mail.com", "password").getBytes(), Base64.DEFAULT)));
            params.put("param1", 300);

            return params;
        }
    };

    RequestQueue requestQueue = Volley.newRequestQueue(activity);
    requestQueue.add(stringRequest);
}

我使用spring boot作为服务器。在上面的服务器中,代码触发用户名和密码的验证,但之后无法到达预期的URL。 如何在curley请求中添加用户凭据和参数,就像在curl --user和-d中一样?

1 个答案:

答案 0 :(得分:0)

由于我看不到你的应用程序中使用的URL,我只需要判断你使用的是CURL中的URL。

还要求在运行服务器的计算机上执行CURL时,必须相应地更改应用程序中的IP地址,因为localhost引用同一设备。

因此,除非您的服务器无法在智能手机上运行,​​否则您必须使用计算机IP地址,而不是本地主机。