gpt4 book ai didi

android - Google Volley 忽略 POST 参数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:49 25 4
gpt4 key购买 nike

我目前正在尝试通过 Google Volley 向我的服务器发送一个简单的 POST 请求。因此,我编写了以下代码行:

Map<String, String> params = new HashMap<String, String>();
params.put("regId", "skdjasjdaljdlksajskl");
JSONObject object = new JSONObject(params);
JsonObjectRequest request = new JsonObjectRequest(Method.POST,
"address_of_my_server/method", object,
successListener, errorListener);
queue.add(request);

但是我收到错误 500,它表示缺少参数 (regId)。我对 GET 请求进行了相同的尝试,但得到了相同的结果。

仅当我使用带有格式化 URL(如“address_of_my_server/method?regId=sadlasjdlasdklsj”)的 StringRequest 时,服务器才回复 200。

当我使用 StringRequest 时得到完全相同的结果:

StringRequest request = new StringRequest(Method.POST,
"myurl", successListener,
errorListener){
@Override
protected Map<String, String> getParams()
throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("regId", "skdjasjdaljdlksajskl");
return params;
}
};

为什么 Volley 会忽略我的参数?

最佳答案

我上周遇到了同样的问题,但现在已经解决了。您的服务器接受 Content-Type 作为表单数据,当发送 volley 的 JsonObjectRequest 时,请求的内容类型将是 application/json 因此整个参数将作为一个 json 主体发送,而不是像 Stringrequest 中那样作为键值对发送。更改服务器代码以从 http 请求正文获取请求参数,而不是从键中获取(如 php 中的 $_REQUEST['name'])。

关于android - Google Volley 忽略 POST 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19760212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com