最新消息:20190529 VPS服务器已从腾讯云香港换为Vultr新加坡,主题仍用朋友推荐的大前端D8

[已解决]xutils3如何实现http的put请求request

HTTP crifan 543浏览 0评论

xutils3 http put

xutils3 http put request

Android 网络请求详解

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

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
58 queries in 0.109 seconds, using 18.76MB memory