在 volley 中设置查询字符串不起作用

Posted

技术标签:

【中文标题】在 volley 中设置查询字符串不起作用【英文标题】:setting query string in volley is not working 【发布时间】:2014-06-17 13:13:43 【问题描述】:

我尝试使用继承请求的自定义请求类发送 GET 请求。我尝试通过 getParams() 方法设置参数。但是当我发送请求时,我收到用户名或密码无效错误。我不知道为什么会这样。但是,当我通过包含 http://myurl.com/method?user="username"&password="password" 等参数的 url 发送请求时,它可以工作。有人可以告诉我为什么会这样吗?

CustomRequest request=new CustomRequest(number,url,new MyListener(number),new ErrorListner(number))

            @Override
            protected Map<String, String> getParams() throws AuthFailureError 
                Map<String, String> query=new HashMap<>();
                query.put("user",data.getString("user"));
                query.put("password",data.getString("password"));
                query.put("sender",data.getString("senderid"));
                query.put("SMSText",data.getString("message"));
                query.put("GSM",number);
                return  query;

            
        ;

【问题讨论】:

您的CustomRequest 扩展了哪个类?如果你扩展 JsonArrayRequestJsonObjectRequest,你应该转向 StringRequest,详情见我的另一个answer。 【参考方案1】:

阅读 javadocs 您会发现 getParams 仅用于 POST 或 PUT,而不是 GET。查询参数需要自己添加到网址中。

/**
 * Returns a Map of parameters to be used for a POST or PUT request.  Can throw
 * @link AuthFailureError as authentication may be required to provide these values.
 *
 * <p>Note that you can directly override @link #getBody() for custom data.</p>
 *
 * @throws AuthFailureError in the event of auth failure
 */
protected Map<String, String> getParams() throws AuthFailureError 
    return null;

【讨论】:

感谢您的回复。这就是问题:)

以上是关于在 volley 中设置查询字符串不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Android:在 TextAppearance 中设置 fontFamily 不起作用

如果 ASP.Net 中的数据库值为空,则在 TextBox 中设置空字符串不起作用

iOS - 为啥在 initWithNibName 中设置和显示子视图不起作用?

以编程方式在 RealtiveLayout 中设置 LinearLayout 的边距 - 不起作用

在情节提要中设置导航栏项目图像不起作用

为啥即使在 WKWebView 中设置 cookie 后 SSO 也不起作用?