gpt4 book ai didi

android - 流改造的意外结束

转载 作者:行者123 更新时间:2023-12-05 00:11:04 25 4
gpt4 key购买 nike

我有一个 Android 应用程序,它向 Flask 中的 REST API 发出 http 请求。我正在使用带有 okhttp3 的 Retrofit2 向带有 Raspbian Lite 的 Raspberry Pi 上托管的服务器发出请求。我的问题是有时我会收到 IOException -> java.net.ProtocolException: unexpected end of stream但它有时会发生,有时它会完美运行。http客户端构建如下:

OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
httpClient.addInterceptor(new Interceptor() {
@NotNull
@Override
public Response intercept(@NotNull Chain chain) throws IOException {
Request original = chain.request();

Request request = original.newBuilder()
.header("User-Agent","myUserAgent")
.header("Connection","close")
.addHeader("Accept-Encoding", "identity")
.method(original.method(),original.body())
.build();

return chain.proceed(request);
}
});
Retrofit retrofit=null;
try {
retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.client(httpClient.build())
.build();

}catch (Exception e){
//Log.d

}
ApiService API_SERVICE=null;
try{
API_SERVICE = retrofit.create(ApiService.class);
}catch (Exception e){
//Log.d
}

return API_SERVICE;

我尝试过使用和不使用日志记录拦截器,使用 Accept-Encoding: identity 和 Conecction: close。但它不起作用。答案的Content-Lenght是4339( postman 标示),拦截器中也标示4339这是我得到的异常:

enter image description here

我在 Android API 28 中使用带有模拟器的 Android Studio。我的电脑和树莓派都通过以太网电缆连接到互联网。我不明白的是为什么有时请求有效而其他时候它直接进入 onFailure。在服务器上,我总是得到一个 200 代码。请求已处理并正确返回响应。我还能尝试什么?

最佳答案

看来问题出在 Android Studio 模拟器上。我已尝试将我的智能手机连接到 android studio 并在另一部智能手机上安装 APK,但问题没有重现。

关于android - 流改造的意外结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61561788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com