我一直在使用volley库与我的android应用程序一起消费服务。我注意到一些奇怪的事情,当我试图将一个json对象发送到服务器时,我必须创建一个JSONObject类型的响应监听器。但我的服务器返回一个字符串,成功或失败。是否可以编写一个等待字符串响应的JsonObjectRequest?这就是我所写的。服务运行正常,但由于无法将字符串收敛到JSON,在成功post后会触发onErrorResponse
JsonObjectRequest jsonRequest = new JsonObjectRequest(Request.Method.POST, url, jsonBody,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Toast.makeText(StartingActivity.this,response.toString(),Toast.LENGTH_SHORT).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
Toast.makeText(StartingActivity.this,"That didn't work",Toast.LENGTH_SHORT).show();
}
});
RequestQueue queue = Volley.newRequestQueue(this);
queue.add(jsonRequest);
使用StringRequest而不是JSONObjectRequest。它将以字符串形式返回响应,如下所示:
StringRequest stringRequest = new StringRequest(Request.Method.POST,url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.e(TAG,response);
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
}) {
@Override
public byte[] getBody() throws AuthFailureError {
//use this to post data.
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
//use this for headers.
}
};
stringRequest.setRetryPolicy(new RetryPolicy() {
@Override
public int getCurrentTimeout() {
return 50000;
}
@Override
public int getCurrentRetryCount() {
return 50000;
}
@Override
public void retry(VolleyError error) throws VolleyError {
}
});
RequestQueue requestQueue = Volley.newRequestQueue(context);
requestQueue.add(stringRequest);
用简单的话来说,我想发送这个数据到服务器,使用Volley Post Request。 它有一个整数和一个字符串,我得到的响应是Jsonarray 我尝试过以下方法,但都不管用 > 因为它是json数组请求,我不能在参数中发送数据,因为第三个参数只需要JsonArray,我必须发送JsonObject,所以保持为null 我不能把它放在中,因为值的1是整数,并且它只接受字符串 getparams(
我想在我的代码中使用Volley,我应该在下面的响应中使用哪种请求类型,我不明白。URL:::http://localhost/api/product/read.php
问题内容: 我是后端代码的新手,我正在尝试创建一个将对我的JSON字符串进行响应的函数。我目前有一个例子 这基本上只是打印字符串“应该以JSON形式出现的随机数”。我要执行的操作是使用任何数字的JSON字符串进行响应。我需要放置其他内容类型吗?该函数应该将该值传递给客户端的另一个用户吗? 谢谢你的帮助! 问题答案: 在Express中使用res.json: 或者:
问题内容: 我如何发送VitalGroupID和Temperature作为整数而不是String…。这是在我点击Submit按钮后形成的请求。 问题答案: 严格来说,json是无类型的,因此您不能将其作为整数发送,它必须是字符串。javascript对象不太严格,因此您拥有的对象将评估为javascript对象,但没有严格的json解析器将能够理解它。 最好的办法是使用parseInt在客户端转换
问题内容: 我有一个.NET中的SOAP Web服务返回的JSON字符串。如下: 现在,我想将此字符串解析为JSON对象。我也看了这个,他们已经用这行代码: 所以我可以通过用我的字符串名称替换“ json”来做到这一点。还需要引用除NewtonSoft.dll以外的任何其他dll吗? 顺便说一句,这是完整的网络服务代码 问题答案: 用 您需要System.Web.Extensions dll并导入
问题内容: 我需要添加一个通常为http:\ somewebsite.com \ somepage.asp格式的URL。当我使用上述URL创建字符串并将其添加到JSON对象json中时 使用 它附加了一个额外的“ \”,当我检查输出时,就像 当我将URL作为 json输出时 您能帮我按原样检索URL吗? 谢谢 问题答案: 您的JSON库会自动转义斜线等字符。在接收端,您必须使用像这样的函数删除那些