gpt4 book ai didi

java - 使用 PUT 方法将参数传递给 volley

转载 作者:搜寻专家 更新时间:2023-11-01 09:48:18 24 4
gpt4 key购买 nike

我正在使用这个简单的代码:

JsonObjectRequest req = new JsonObjectRequest(Request.Method.PUT, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
delegate.postNotificationSucced();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
Log.d(TAG, ""+error.getMessage()+","+error.toString());
delegate.postNotificationFailed((APIErrors) error);
}
}){
@Override
public Map<String, String> getParams() throws AuthFailureError {
Map<String,String> headers = new HashMap<String, String>();
headers.put("Content-Type","application/x-www-form-urlencoded");
headers.put("state", Boolean.toString(isChecked));
return headers;
}

@Override
protected VolleyError parseNetworkError(VolleyError volleyError){
APIErrors error = null;

if(volleyError.networkResponse != null && volleyError.networkResponse.data != null){
error = new APIErrors(new String(volleyError.networkResponse.data));
}
return error;
}
};

当我使用 Request.Method.GETPOST 而不是 PUT 时,getParams()方法被调用但不使用 PUT 方法。我的问题是我的 API 需要一个 PUT 方法。

如何使用 PUT 方法传递我的参数。

编辑:

使用 PUT 方法调用 getHeaders() 方法,那么我可以通过它传递我的参数吗?

解决方案:

在我的例子中,我解决了将我的 JsonObjecRequest 更改为 StringRequest 的问题,就像@ishmaelMakitla 所建议的那样。现在我在 getParams() 中传递。

I noticed that you are not using the response object for anything - so perhaps change the request from JsonObjectRequest to a StringRequest - remember that you then need to change Response.Listener() to Response.Listener() and the onResponse(JSONObject response) to onResponse(String response)....shout if you need further help. I hope this leads to some workable solution.

原因是使用JsonObjectRequest,参数必须通过构造函数的第三个参数传递

jsonRequest - A JSONObject to post with the request. Null is allowed and indicates no parameters will be posted along with request.

你可以read文档以获取更多信息。

最佳答案

由于您没有将响应对象用于任何事情 - 您应该将请求从 JsonObjectRequest 更改为到 StringRequest - 请记住,您随后需要更改 Response.Listener<JSONObject>()Response.Listener<String>()和 o nResponse(JSONObject response)onResponse(String response) .... 这是 StringRequest Gist我创建了 - 您可以简单地在您的代码中“即插即用”并替换 JsonObjectRequest代码。

关于java - 使用 PUT 方法将参数传递给 volley,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36894763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com