Comments (3)
刚发现了 是okhttp版本的问题,我把demo里的okhttp改为4.11.0就会出现
from easyhttp.
小伙子,我对这个问题进行了实践,确实存在这个问题,具体问题原因是 HttpData 定义了 Headers 类型的字段,即名为 responseHeaders 字段,因为 Gson 内部无法对这种类型进行序列化和反序列化,所以出现解析报错,旧版本之所以没有这个问题,是因为旧版本的 OkHttp 是用 Java 语言写的,而到了新版本,则是用 Kotlin 语言写的,解决这个问题的方法也很简单,将 responseHeaders 字段类型从 Headers 修改成 Map 类型,具体的代码改动如下:
public class HttpData<T> {
/** 响应头 */
@Nullable
private Map<String, String> responseHeaders;
public void setResponseHeaders(@Nullable Map<String, String> responseHeaders) {
this.responseHeaders = responseHeaders;
}
@Nullable
public Map<String, String> getResponseHeaders() {
return responseHeaders;
}
......
}
public final class RequestHandler implements IRequestHandler {
......
@NonNull
@Override
public Object requestSuccess(@NonNull HttpRequest<?> httpRequest, @NonNull Response response, @NonNull Type type) throws Throwable {
......
if (result instanceof HttpData) {
HttpData<?> model = (HttpData<?>) result;
Headers headers = response.headers();
int headersSize = headers.size();
Map<String, String> headersMap = new HashMap<>(headersSize);
for (int i = 0; i < headersSize; i++) {
headersMap.put(headers.name(i), headers.value(i));
}
model.setResponseHeaders(headersMap);
......
}
return result;
}
}
from easyhttp.
验证了下确实可以了
from easyhttp.
Related Issues (20)
- [疑惑]:我在APP里面集成了easyHttp,然后集成了一个第三方库,也集成了easyHttp 应该怎么分别调用 HOT 2
- [疑惑]:后端需要一个参数值为 null,但是设置为 null 后参数不会提交给后台 HOT 3
- [疑惑]:看文档介绍该框架是支持Android API 14及以上即可,我的设备是API 19的(Android4.4.2),但是使用此框架访问接口报了这个错误 HOT 5
- [Bug]:请求头参数的字母被转成小写了 HOT 2
- [建议]:是否支持文件上传断点续传 HOT 2
- [Bug]:下载txt文件 进度是-1,其他文件正常,跟文件有关系吗
- [疑惑]:Get请求能否实现 https://ebook/note/delete/{id} 将id传入进去?路径传参好像一时半会儿还没找到解决办法 HOT 1
- [疑惑]:get请求,如何把接收的参数回调成string HOT 1
- [疑惑]:是否考虑支持viewModle HOT 1
- 接口直接返回了一个音频文件,这个框架该怎么处理呢? HOT 14
- [Bug]:java.lang.NoSuchMethodError: No direct method <init>(Ljava/util/Map;)V in class Lcom/google/gson/internal/ConstructorConstructor; or its super classes (declaration of 'com.google.gson.internal.ConstructorConstructor' HOT 1
- [疑惑]:发起get请求请求头的问题 HOT 2
- [疑惑]:USE_CACHE_FIRST缓存的问题 HOT 6
- [Bug]:调用接口报错,debug正常,release包存在错误 HOT 6
- [Bug]:java.lang.ClassCastException: java.lang.Void cannot be cast to com.hjq.easy.demo.http.model.HttpData HOT 15
- 数据解析出错 HOT 2
- [Bug]:偶现接口请求发不出去,无反应 HOT 2
- [疑惑]: HOT 2
- [疑惑]:轮子哥,请教下,要怎么在一个EasyHttp.download中配置新的OkHttpClient? HOT 8
- [Bug]:上传文件,进度条到100%后立即报IOException: Stream Closed HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from easyhttp.