我想使用volley库进行同步请求,我使用了以下代码:
RequestFuture<Long> future = RequestFuture.newFuture(); AuthenticatedJsonRequest request = new AuthenticatedJsonRequest(Method.GET,ServiceUrl,null,future,future); requestQueue.add(request); try { Long response = future.get();
Long response = future.get();
这是我的自定义JsonRequest
public class AuthenticatedJsonRequest extends JsonRequest<Long> { public AuthenticatedJsonRequest(int method,String url,String requestBody,Listener<Long> listener,ErrorListener errorListener) { super(method,url,requestBody,listener,errorListener); // Todo Auto-generated constructor stub } @Override public Map<String,String> getHeaders() throws AuthFailureError { Map<String,String> headers = new HashMap<String,String>(); String creds = String.format("%s:%s",RestClient.UserName,RestClient.Password); String auth = "Basic " + Base64.encodetoString(creds.getBytes(),Base64.DEFAULT); headers.put("Authorization",auth); return headers; } @Override protected Response<Long> parseNetworkResponse(NetworkResponse response) { try { String jsonString = new String(response.data,HttpHeaderParser.parseCharset(response.headers)); return Response.success(Long.valueOf(jsonString),HttpHeaderParser.parseCacheHeaders(response)); } catch (UnsupportedEncodingException e) { return Response.error(new ParseError(e)); } }
我调试了凌空代码,它在Networkdispatcher中停止
//从队列中获取请求.
request = mQueue.take();
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。