我的Android Volley JsonObjectRequest遇到问题:
遇到onErrorResponseBasicNetwork.performRequest: Unexpected response code 405 for MY_URL
我的网址有效。我用浏览器检查了一下 我到达那里预期的JSON对象。 所以问题必须在客户端。
代码405表示:
不允许的方法请求行中指定的方法不是 允许Request-URI标识的资源。响应 必须包含一个包含有效方法列表的Allow标头 请求的资源。
我的JsonObjectRequest代码:
JsonObjectRequest jsonReq;
jsonReq = new JsonObjectRequest(URL_FEED, new JSONObject(),
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
VolleyLog.v("Response:%n %s", response.toString(4));
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.v("ERROR:%n %s", error.getMessage());
}
});
// Adding request to volley request queue
NetworkController.getInstance().addToRequestQueue(jsonReq);
我是否必须在标题中添加一些信息?如果有什么信息?
答案 0 :(得分:9)
问题是默认情况下请求设置为POST
。
对我有用的解决方案:
JsonObjectRequest jsonReq = new JsonObjectRequest
(Request.Method.GET, URL_FEED, null, new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response)
{
Log.d("Server", "Läuft");
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error)
{
Log.d("Server","onErrorResponse");
}
});
NetworkController.getInstance().addToRequestQueue(jsonReq);
答案 1 :(得分:1)
使用 GET 方法代替对我有用的 POST 。