标签: okhttp

OkHTTP从enqueue回调更新UI

我正在尝试使用OkHTTP库.调用服务器并获得成功响应时.我需要更新UI.

使用enqueue()进行异步调用时如何才能完成?

client.newCall(request).enqueue(new Callback() {

    @Override
    public void onFailure(Request request, IOException e) {

    }

    @Override
    public void onResponse(Response response) throws IOException {

        if (response.isSuccessful()) {

            // NEED TO UPDATE UI HERE

        } 
    }
});
Run Code Online (Sandbox Code Playgroud)

android okhttp

11
推荐指数
3
解决办法
1万
查看次数

Retrofit 2/OkHttp:取消所有正在运行的请求

我正在使用Retrofit 2-beta2和OkHttp 2.7.0.

为了OkHttpClient从Retrofit 获取对象,我正在使用Retrofit .client()方法并取消所有正在运行的请求,我称之为取消(Object tag)方法,但请求仍然继续运行,我得到了响应.

即使客户DispatchergetQueuedCallCount()getRunningCallCount()返回0调用cancel()之后.

还有什么我需要做的才能工作吗?或者它可能是OkHttp中的错误?

作为一种解决方法,我打电话shutdownNow()给客户,ExecutorService 但我更喜欢更清洁的解决方案.

java android retrofit okhttp

11
推荐指数
1
解决办法
1万
查看次数

暂停app后com.android.volley.NoConnectionError

我正在使用Google Volley和Gson编写我的应用程序,使用OkHttp作为HTTP-Stack与REST服务进行通信.这大部分时间都很好用但是当我暂停我的应用并返回它时,HTTP请求不能用于此异常:

     09-08 19:29:19.611: E/ASDF(21827): com.android.volley.NoConnectionError: java.io.EOFException
     09-08 19:29:19.611: E/ASDF(21827):     at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:125)
     09-08 19:29:19.611: E/ASDF(21827):     at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:105)
     09-08 19:29:19.611: E/ASDF(21827): Caused by: java.io.EOFException
     09-08 19:29:19.611: E/ASDF(21827):     at java.util.zip.GZIPInputStream.readFully(GZIPInputStream.java:206)
     09-08 19:29:19.611: E/ASDF(21827):     at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:98)
     09-08 19:29:19.611: E/ASDF(21827):     at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:81)
     09-08 19:29:19.611: E/ASDF(21827):     at com.squareup.okhttp.internal.http.HttpEngine.initContentStream(HttpEngine.java:461)
     09-08 19:29:19.611: E/ASDF(21827):     at com.squareup.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:659)
     09-08 19:29:19.611: E/ASDF(21827):     at com.squareup.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:346)
     09-08 19:29:19.611: E/ASDF(21827):     at com.squareup.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:295)
     09-08 19:29:19.611: E/ASDF(21827):     at com.squareup.okhttp.internal.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:489)
     09-08 19:29:19.611: E/ASDF(21827):     at com.squareup.okhttp.internal.http.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:136)
     09-08 19:29:19.611: E/ASDF(21827):     at com.android.volley.toolbox.HurlStack.performRequest(HurlStack.java:109)
     09-08 19:29:19.611: E/ASDF(21827):     at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:93)
     09-08 19:29:19.611: …
Run Code Online (Sandbox Code Playgroud)

android android-volley okhttp

10
推荐指数
1
解决办法
8081
查看次数

在Okhttp中处理身份验证

OkHttp 2.3根据OKHttp文档,我正在使用基本身份验证请求,它会自动重试未经身份验证的请求,但每当我提供无效凭据时,请求都会花费太多时间,最后我得到了这个异常:

java.net.ProtocolException:后续请求太多:21

如何阻止OkHttp自动重试未经身份验证的请求,然后返回401 Unauthorized

authentication android http-status-code-401 okhttp okio

10
推荐指数
1
解决办法
6277
查看次数

java.io.IOException出现此错误的原因是什么:Content-Length和流长度不一致

我收到了这个错误

   java.io.IOException: Content-Length and stream length disagree
Run Code Online (Sandbox Code Playgroud)

在这行代码上 return response.body().bytes();

这是完整的代码

编辑:在一些谷歌之后,错误的原因来自okhttp lib

if (contentLength != -1L && contentLength != bytes.size.toLong()) {
  throw IOException(
      "Content-Length ($contentLength) and stream length (${bytes.size}) disagree")
}
Run Code Online (Sandbox Code Playgroud)

但是如何解决这个问题?

编辑:

在此输入图像描述

这是完整的代码:

public class OkHttpHandler extends AsyncTask<Void, Void, byte[]> {

    private final String Fetch_URL = "http://justedhak.comlu.com/get-data.php";
    ArrayList<Listitem> Listitem;
    int resulta;

    OkHttpClient httpClient = new OkHttpClient();

    String myJSON;
    JSONArray peoples = null;
    InputStream inputStream = null;

    @Override
    protected byte[] doInBackground(Void... params) {
        Log.d("e", "dddddddddd");
        Log.d("e", Fetch_URL);

        Request.Builder …
Run Code Online (Sandbox Code Playgroud)

android okhttp

10
推荐指数
1
解决办法
1万
查看次数

使用okHttp3上传动态文件数

如何使用OkHttp v3 管理动态文件数量的上传,我已经使用旧版本的OkHttp实现了compile 'com.squareup.okhttp:okhttp:2.6.0'

类Form中有一些变化,现在对Multipart体进行建模.他们用更强大的FormBody和FormBody.Builder组合替换了不透明的FormEncodingBuilder.同样,他们将MultipartBuilder升级为MultipartBody,MultipartBody.Part和MultipartBody.Builder.

下面的代码是旧版本

final MediaType MEDIA_TYPE = MediaType.parse(AppConstant.arrImages.get(i).getMediaType());

//If you can have multiple file types, set it in ArrayList

MultipartBuilder buildernew = new MultipartBuilder()
        .type(MultipartBuilder.FORM)
        .addFormDataPart("title", title);   //Here you can add the fix number of data.

for (int i = 0; i < AppConstants.arrImages.size(); i++) {  //loop to add dynamic number of files.
    File f = new File(FILE_PATH,TEMP_FILE_NAME + i + ".png");
    if (f.exists()) {
        buildernew.addFormDataPart(TEMP_FILE_NAME + i, TEMP_FILE_NAME + i + FILE_EXTENSION, RequestBody.create(MEDIA_TYPE, f)); …
Run Code Online (Sandbox Code Playgroud)

android file-upload okhttp okhttp3

10
推荐指数
1
解决办法
5783
查看次数

OkHttpClient限制连接数?

是否可以OkHttpClient限制实时连接的数量?因此,如果达到限制,则不会选择和建立新连接?

我的应用程序同时启动了许多连接.

java android okhttp

10
推荐指数
2
解决办法
3671
查看次数

尝试创建OkHttpClient对象时出现kotlin / TypeCastException

当我尝试创建新的OkHttpClient对象时,抛出异常

我正在使用OkHttp 3.11.0和OkIO 2.0.0-RC1。

okhttp3.internal.Util。(Util.java:60)上的okhttp3.OkHttpClient。(OkHttpClient。 java:123)at p12.Main.main(Main.java:8)原因:java.lang.ClassNotFoundException:java.net.URLClassLoader.findClass(URLClassLoader.java:381)的kotlin.TypeCastException .loadClass(ClassLoader.java:424)at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:349)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)... 4另外

java okhttp okio

10
推荐指数
3
解决办法
6848
查看次数

How to fix "End of stream on null" network issue?

Some users of my Android application are frequently running into a network error with the following error message: "Unexpected end of stream on null".

I didn't find any clear way to solve it by looking at other similar question. I haven't been able to reproduce the network error on my end.

1) I have unsuccessfully appended Connection=close to the requests headers as this answer suggests

2) I have unsucessflly added .retryOnConnectionFailure(true) as this answer suggests

3) I have unsuccessfully searched …

android retrofit okhttp amazon-elastic-beanstalk aws-ebs

10
推荐指数
1
解决办法
254
查看次数

OkHttp 不断收到 StreamResetException:流已重置:当它为 200 时,内部错误

StreamResetException: stream was reset: INTERNAL_ERROR从 OkHttp 得到的。有什么问题?

这是日志。

I/okhttp.OkHttpClient: <-- 200 https://www.example.com/user/list (396ms)
I/okhttp.OkHttpClient: date: Fri, 04 Dec 2020 02:21:35 GMT
I/okhttp.OkHttpClient: content-type: application/json
I/okhttp.OkHttpClient: content-length: 99730
I/okhttp.OkHttpClient: server: nginx/1.18.0
I/okhttp.OkHttpClient: allow: GET, HEAD, OPTIONS
I/okhttp.OkHttpClient: x-frame-options: DENY
I/okhttp.OkHttpClient: x-content-type-options: nosniff
I/okhttp.OkHttpClient: referrer-policy: same-origin
D/okhttp.Http2: << 0x00000003  5792 DATA          
D/okhttp.Http2: << 0x00000003     4 RST_STREAM    
D/okhttp.TaskRunner: Q10092 canceled              : OkHttp ConnectionPool
D/force: okhttp3.internal.http2.StreamResetException: stream was reset: INTERNAL_ERROR
D/okhttp.Http2: >> 0x00000000     8 GOAWAY     
D/okhttp.TaskRunner: Q10096 finished run in 216 ms: …
Run Code Online (Sandbox Code Playgroud)

django android okhttp http2

10
推荐指数
1
解决办法
2万
查看次数