如何解决无法使用 volley 将 JSON 数据发布到 URL:响应代码 400
我正在尝试将“JSON”数据发布到 String URL DOWNLINK_URL = "https://integrations.thethingsnetwork.org/ttn-us-west/api/v2/down/testing/newbee_testing?key=MY_APP_KEY";
我不确定我的代码有什么问题,我不断收到 Volley: [2500] NetworkUtility.shouldRetryException: Unexpected response code 400 for DOWNLINK_URL
先谢谢你!
private void postDataUsingVolley(String dev_id,String payload_raw) {
try {
RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
JSONObject params = new JSONObject();
params.put("dev_id",dev_id);
params.put("port","1");
params.put("confirmed","false");
params.put("payload_raw",payload_raw);
params.put("schedule","replace");
final String mRequestBody = params.toString();
StringRequest stringRequest = new StringRequest(Request.Method.POST,DOWNLINK_URL,new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.i("LOG_VOLLEY",response);
}
},new Response.ErrorListener() {
/* import com.android.volley.toolBox.HttpHeaderParser; */
public void onErrorResponse(VolleyError error) {
// As of f605da3 the following should work
NetworkResponse response = error.networkResponse;
if (error instanceof ServerError && response != null) {
try {
String res = new String(response.data,HttpHeaderParser.parseCharset(response.headers,"utf-8"));
// Now you can use any deserializer to make sense of data
JSONObject obj = new JSONObject(res);
} catch (UnsupportedEncodingException e1) {
// Couldn't properly decode data to string
e1.printstacktrace();
} catch (JSONException e2) {
// returned data is not JSONObject?
e2.printstacktrace();
}
}
}
}) {
@Override
public String getBodyContentType() {
return "application/json; charset=utf-8";
}
@Override
public Map<String,String> getHeaders() throws AuthFailureError {
HashMap<String,String> headers = new HashMap<String,String>();
headers.put("Content-Type","application/json; charset=utf-8");
return headers;
}
@Override
protected Response<String> parseNetworkResponse(NetworkResponse response) {
String responseString = "";
if (response != null) {
responseString = String.valueOf(response.statusCode);
}
return Response.success(responseString,HttpHeaderParser.parseCacheHeaders(response));
}
};
requestQueue.add(stringRequest);
} catch (JSONException e) {
e.printstacktrace();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。