现在的位置: 首页 > 综合 > 正文

android中Volley框架所遇到的问题

2018年04月22日 ⁄ 综合 ⁄ 共 1080字 ⁄ 字号 评论关闭

项目中肯定会用到与服务器交互,因为服务器端接受的参数只需要一个字符串(JSon类型的)没有key,之前是自己用HttpUrlConnection自己写的,Post一个字符串上去。最近用到Volley框架,结果发现框架里面Post String 或者Json的时候都需要一个key,然后就很尴尬了,因为没有key么,所以请求发送不成咯。后来找到解决办法,就是自己自定义一个Request类继承 JsonRequest<JSONObject> (其他的StringRequest之类的也可以,看你返回数据类型),具体内容如下。

public class JsonStringRequest extends JsonRequest {public JsonStringRequest(String url, String requestBody,Listener listener, ErrorListener errorListener) {super(url, requestBody, listener, errorListener);}public JsonStringRequest(int method, String url, String jsonRequest, Listener listener, ErrorListener errorListener) { super(method, url, (jsonRequest == null) ? null : jsonRequest.toString(), listener, errorListener); } @Override protected Response parseNetworkResponse(NetworkResponse response) { try { String jsonString = new String(response.data, HttpHeaderParser.parseCharset(response.headers)); return Response.success(new JSONObject(jsonString), HttpHeaderParser.parseCacheHeaders(response)); } catch (UnsupportedEncodingException e) { return Response.error(new ParseError(e)); } catch (JSONException je) { return Response.error(new ParseError(je)); } }}

调用的话跟其他都一样就没什么好说的了,有遇到的朋友可以试试

抱歉!评论已关闭.