我有下面的代码(谷歌的凌空库)向我的php服务器发送POST请求并获取信息。我没有在php中检查isset($\u POST['id')就尝试了代码,代码运行良好。当我开始检查时,php将跳过if语句并转到else,这意味着代码没有正确发送参数。我怎样才能解决这个问题?
RequestQueue queue = Volley.newRequestQueue(Chat.this);
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
CHAT_URL_FEED, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d("THISSSSSSSS", response.toString());
if (response != null) {
parseChatJsonFeed(response);
}
}
}, new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error){
VolleyLog.d("Here", "Error: " + error.getMessage());
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("id", id);
return params;
}
};
queue.add(jsonObjReq);
我还尝试了以下代码:
RequestQueue queue = Volley.newRequestQueue(Chat.this);
JSONObject params = new JSONObject();
try {
params.put("id", id);
} catch (JSONException e) {
e.printStackTrace();
}
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
CHAT_URL_FEED, params,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d("THISSSSSSSS", response.toString());
if (response != null) {
parseChatJsonFeed(response);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("Here", "Error: " + error.getMessage());
}
});
queue.add(jsonObjReq);
但是我仍然得到同样的结果。
对于发送的POST请求,您可以编写基于JsonRequest类P.S的自定义请求类。我在我的库中使用这种方式(基于凌空)
StringRequest postRequest = new StringRequest(Request.Method.POST, CHAT_URL_FEED,
new Response.Listener<String>()
{
@Override
public void onResponse(String response) {
// response
Log.d("THISSSSSSSS", response.toString());
if (response != null) {
parseChatJsonFeed(response);
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
// error
VolleyLog.d("Here", "Error: " + error.getMessage());
}
}
) {
@Override
protected Map<String, String> getParams()
{
Map<String, String> params = new HashMap<String, String>();
params.put("id", id);
return params;
}
};
Volley在请求JSONObject时不支持参数。您可以获得作为JSON字符串的响应,并且可以使用JSONObject类转换回JSON。
在花了更多时间研究这个问题后,我发现Volley无法正确处理带有POST请求的JSON请求。User@SMR在我的问题的评论部分建议了这一点。我在Google群组和git上的mian repo上也看到了类似的答案。我最终使用GET请求将信息传递给服务器并检索JSON提要。
我想发一个带有改装2的帖子。url有一些参数: url如下所示 www.website.com/server/directory/location。type?arg1=value1&arg2=value2 我被要求使用POST请求。值(value1和value2)在运行时是动态的。我使用HttpClient用Xamarin开始了这个项目,现在我正在用Java原生语言重写它。在C#中,我所要做的就是
问题内容: 我正在使用以下代码发送请求: 在PHP方面,我有这个: 但是,即使category和tag变量都具有值,控制台也会记录一个空数组。我的帖子出了什么问题? 问题答案: 在发送呼叫之前添加: 更换: 与 希望这可以帮助。
问题内容: 根据带有凭据的请求,Firefox仅在以下情况下发送凭据以及跨域帖子: 设置了…但是看来jQuery的Ajax API似乎没有为此提供任何机制。 有什么我想念的吗?我还有其他方法可以做到吗? 问题答案: 功能应该在jQuery 1.5中被破坏。 从jQuery 1.5.1开始,您应该使用xhrFields参数。 文件:http://api.jquery.com/jQuery.ajax/
我想通过post请求将数据发送到API。对于postman,这个API只有在我将参数设置为身体中的表单数据时才起作用,如图所示 这是我的密码 但这对我不起作用。我使用所有这些参数(json、form_params、body),但没有一个不适合我 我用laravel 5.4,狂饮6.3 根据guzzlephp文档,这个配置用于应用程序/x-www-form-urlencoded发送参数,但我需要一个
我在慢速网络上的Volley POST请求有问题。每次我在我的LogCat中看到BasicNetwork.logSlow请求,我的POST请求都会执行两次或更多次,导致1个请求的多次(2次或更多)发布。我已经将重试策略设置为0,但它没有帮助。 这是我的LogCat 截击(5984):[19807]基本网络。logSlowRequests:请求的HTTP响应= 这是我的密码 请帮助,我拼命寻找解决这
我正在测试一种使用改装库发送图像的方法。在此处的改装文件中:http://square.github.io/retrofit/有一种方法可以使用@MultiPart注释。我正在尝试像文档一样使用,但对我来说仍然不起作用。 我该怎么做? 我在努力。 Web服务php文件 Usario的侦听器 活动 例外 电子/错误:(5200):com。谷歌。格森。JsonSyntaxException:com。谷