Android Volley 如何使用 volley 在 POST 请求中发送用户名和密码以及其他参数
Posted
技术标签:
【中文标题】Android Volley 如何使用 volley 在 POST 请求中发送用户名和密码以及其他参数【英文标题】:Android Volley How to send username and password with other parameters in a POST request using volley 【发布时间】:2016-11-12 09:05:11 【问题描述】:我有一个完美运行的 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。 如何像 curl --user 和 -d 一样在 volley 请求中添加用户凭据和参数?
【问题讨论】:
看这里***.com/questions/37908320/… @SohailZahid 在链接中,您没有覆盖 getHeaders() 并且没有发送用户名和密码。我知道如何发送参数。但是如何用凭据发送它是我正在寻找的。span> 你为什么要覆盖getHeaders
,你可以在安全加密文件的参数中发送它们。
在服务器端,我已经配置拦截凭据。
没问题你可以在应用md5后发送文件并在接收时再次解码它吗?在发布请求时不需要天气。
【参考方案1】:
由于我看不到您的应用程序中使用的 URL,我只需要询问您使用的 URL 是否与 CURL 中的相同。
此外,如果您的 CURL 是在您的服务器运行的计算机上执行的,您必须相应地更改应用程序中的 IP 地址,因为 localhost 指的是同一设备。
因此,除非您的服务器没有在您的智能手机上运行,否则您必须使用计算机 IP 地址,而不是 localhost。
【讨论】:
BackendConnection.uploadDataUrl 有服务器的URL @Prasad 我知道这一点。我只是认为你也可以在那里使用“localhost”,除非服务器实际上也在手机上运行,否则这不会有太大帮助,这是不太可能的,以上是关于Android Volley 如何使用 volley 在 POST 请求中发送用户名和密码以及其他参数的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Gradle 替换 Android Volley 库?
如何在 Android 中使用 Volley 库进行肥皂发布请求