gpt4 book ai didi

安卓 Volley : how to make json request without returned object?

转载 作者:行者123 更新时间:2023-11-29 17:25:54 25 4
gpt4 key购买 nike

现在我在做

 JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(
Request.Method.POST, uri, json,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject jsonObject) {
// do action
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
//manage error
}
}
);

我的 servlet 使用 Jersey 作为 JAX-RS。作为参数传递的 uri 调用的资源不会产生任何 json 对象。如果我这样做,即使在服务器上正确使用了通过 POST 发送的 json 对象,也会调用错误回调。如果我返回一个带有假数据的 json,则会调用响应回调,但我不需要发回一个对象(浪费用户的数据带宽)。如果响应代码是 OK 或 200,我想执行正常响应操作。我该怎么办?

最佳答案

您可以覆盖 JsonObjectRequest 的 parseNetworkResponse 方法,以便它接受空响应:

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(
Request.Method.POST, uri, json,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject jsonObject) {
// do action
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
//manage error
}
}
) {

@Override
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {


try {
String json = new String(
response.data,
"UTF-8"
);

if (json.length() == 0) {
return Response.success(
null,
HttpHeaderParser.parseCacheHeaders(response)
);
}
else {
return super.parseNetworkResponse(response);
}
}
catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
}


}
};

关于安卓 Volley : how to make json request without returned object?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34657450/

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