Android 截击:意外的响应代码 405
Android Volley: Unexpected response code 405
我的 Android Volley JsonObject请求遇到 onErrorResponse 问题:
BasicNetwork.performRequest: Unexpected response code 405 for MY_URL
我的URL有效。我已经用浏览器检查过了
我达到了预期的 JSON Object。
所以问题必须在客户端。
代码 405 表示:
Method Not Allowed The method specified in the Request-Line is not
allowed for the resource identified by the Request-URI. The response
MUST include an Allow header containing a list of valid methods for
the requested resource.
我的 Json 代码Object请求:
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);
我是否必须向 header 添加一些信息?如果需要什么信息?
问题是请求默认设置为 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);
使用 GET 方法而不是 POST 它对我有用。
我遇到了同样的问题,我发现我的 API URL 是错误的。
所以,我的建议是重新检查 API URL。
我的 Android Volley JsonObject请求遇到 onErrorResponse 问题:
BasicNetwork.performRequest: Unexpected response code 405 for MY_URL
我的URL有效。我已经用浏览器检查过了 我达到了预期的 JSON Object。 所以问题必须在客户端。
代码 405 表示:
Method Not Allowed The method specified in the Request-Line is not allowed for the resource identified by the Request-URI. The response MUST include an Allow header containing a list of valid methods for the requested resource.
我的 Json 代码Object请求:
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);
我是否必须向 header 添加一些信息?如果需要什么信息?
问题是请求默认设置为 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);
使用 GET 方法而不是 POST 它对我有用。
我遇到了同样的问题,我发现我的 API URL 是错误的。
所以,我的建议是重新检查 API URL。