xutils3 http put
xutils3 http put request
XUtils3框架的基本使用方法(一) – Yan的博客 – 博客频道 – CSDN.NET
xutils3使用Digest验证的方法 · Issue #191 · wyouflf/xUtils3
wyouflf/xUtils3: android orm, bitmap, http, view inject…
看到源码了,应该是:
request
传入HTTP的PUT即可
xUtils3/HttpMethod.java at master · wyouflf/xUtils3
看到:
public enum HttpMethod { GET(“GET”), POST(“POST”), PUT(“PUT”), PATCH(“PATCH”), HEAD(“HEAD”), MOVE(“MOVE”), COPY(“COPY”), DELETE(“DELETE”), OPTIONS(“OPTIONS”), TRACE(“TRACE”), CONNECT(“CONNECT”); |
说明支持PUT
然后看到:
xUtils3/HttpManagerImpl.java at a7a21483ae99412ff4a11c9a6b068978b8c694e7 · wyouflf/xUtils3
@Override public <T> Callback.Cancelable get(RequestParams entity, Callback.CommonCallback<T> callback) { return request(HttpMethod.GET, entity, callback); } @Override public <T> Callback.Cancelable post(RequestParams entity, Callback.CommonCallback<T> callback) { return request(HttpMethod.POST, entity, callback); } @Override public <T> Callback.Cancelable request(HttpMethod method, RequestParams entity, Callback.CommonCallback<T> callback) { entity.setMethod(method); Callback.Cancelable cancelable = null; if (callback instanceof Callback.Cancelable) { cancelable = (Callback.Cancelable) callback; } HttpTask<T> task = new HttpTask<T>(entity, cancelable, callback); return x.task().start(task); } |
很明显:
xutils3的设计者,设计了个request函数:
支持传入其支持的任何HTTP的方法(包括GET,POST,PUT,DELETE等等)
以及传入对应的(PUT,POST等所需要的)RequestParams(的Body参数)
以及加上回调函数
如此,即可支持HTTP的各种方法了。
-》
但是此处诡异的是:
本了是添加的bodyParams
public void addBodyParameter(String name, String value) { if (!TextUtils.isEmpty(name)) { this.bodyParams.add(new KeyValue(name, value)); Log.d(“xzy”,”bodySize:”+bodyParams.size()); } else { this.bodyContent = value; } } |
但是调试期间发现,执行了:
this.bodyParams.add(new KeyValue(name, value)); |
bodyParams没变化,是空的列表。。。
而queryParams变量却变了。。。
【总结】
后来好像是强制设置了json格式,然后才解决问题的。
转载请注明:在路上 » [已解决]xutils3如何实现http的put请求request