草庐IT

android - 如何指定 Get-Request 编码(Retrofit + OkHttp)

我在我的Android应用程序中使用Retrofit2+OkHttp3向REST服务器发出GET-请求。问题是服务器没有指定它传送的JSON的编码。这导致“é”被接收为“�”(Unicode替换字符)。有没有办法告诉Retrofit或OkHttp响应的编码是什么?这是我初始化Retrofit的方式(Kotlin代码):valgson=GsonBuilder().setDateFormat("d.M.yyyy").create()valclient=OkHttpClient.Builder().build()valretrofit=Retrofit.Builder().baseUrl(R

java - 使用 Okhttp3 的 OPTIONS/HEAD REST API 请求

我正在Android上编写一些Rest客户端,但我遇到了一个问题-我不知道如何发出HEAD和OPTIONS请求。OkHttp3中GET/POST/PUT/DELETE/PATCH请求都没有问题,基本上是这样的:request=newRequest.Builder().url(url).headers(headerBuilder.build()).post(bodyBuilder.build()).build();并且OkHttp3不提供其他方法,如head()或option()。那么如何使用OkHttp3发出HEAD和OPTIONS请求呢? 最佳答案

android - 我们可以将什么作为音频文件的 okhttp3 MediaType.parse 方法的参数?

我发现要使用带RequestBody的Android上传图片,我们可以使用MediaType.parse("image/jpeg")。但是,音频文件的参数是什么?预先感谢您的回答。 最佳答案 您可以使用此方法获取任何文件的mime类型:publicstaticStringgetMimeType(Stringurl){Stringtype=null;Stringextension=MimeTypeMap.getFileExtensionFromUrl(url);if(extension!=null){type=MimeTypeMap.

java - 如何使用 Retrofit/OkHttp 使并发请求更快?

我需要在Android中使用Retrofit尽快发出50个httpGET请求。我正在使用带有OkHttp的Retrofit。目前,Retrofit与纯JavaThreadPoolExecutor和HttpUrlConnection相比表现不佳:对于所有50个请求,Retrofit大约需要50秒,普通HttpUrlConnection大约需要30秒,如果我为ThreadPoolExecutor设置了池大小20,为Retrofit/OkHttp我设置了okHttpClient.dispatcher().setMaxRequests(20);。如果我查看logcat,无论我在setMaxRe

android - 在 Android 上为 OkHttp 缓存创建目录?

在Android上,我应该如何为com.squareup.okhttp.Cache构造函数创建File参数?看起来Context给了你很多选择:newFile(context.getCacheDir(),"HttpResponseCache")新文件(context.getExternalCacheDir(),"HttpResponseCache")context.getDir("HttpResponseCache",Context.MODE_PRIVATE)只是想知道什么是最佳实践。谢谢! 最佳答案 第一个应该运行良好,并且为您的

android - Okclient中的okclient无法应用于(okhttp3.okhttpclient)

我正在尝试在我的一个项目中使用Retrofit。我遇到了错误(newOkClient(newOkHttpClient()))RestAdapteradapter=newRestAdapter.Builder().setEndpoint(Constants.GET_API_URL_BASE).setLogLevel(RestAdapter.LogLevel.FULL).setClient(newOkClient(newOkHttpClient())).build();apiGet=adapter.create(ApiCalls.class);错误,红色下划线,已打开(newOkHttpC

java - square - okhttp - OkHttpClient 无法解析

目前我正在研究StormyTreehouseAndroidapp.我想使用squareOkHttpClient但是在导入类时出现错误“无法解析符号okhttp3”:importcom.squareup.okhttp3.OkHttpClient;。用okhttp替换okhttp3并不能修复错误。感谢您的帮助。主Activity.javapackagecom.trainerworkout.stormy;importandroid.support.v7.app.AppCompatActivity;importandroid.os.Bundle;//cannotresolvesymbol'ok

java.lang.NoClassDefFoundError : okhttp3. OkHttpClient$Builder

在我的项目中,我使用了OkHttp(version2.5.0)作为我的网络请求库。但是几天前,我尝试将Retrofit2作为我的应用程序网络请求库的一部分,如您所知,新的Retrofit2库依赖于OkHttp(版本3.2.0)。所以当我的应用程序在android手机上运行时,问题就来了android5.0以下的版本老是崩溃(大版本也能正常运行不崩溃),崩溃堆栈信息如下:04-1521:28:51.18517238-17238/com.comingx.athitW/System.err:java.lang.NoClassDefFoundError:okhttp3.OkHttpClient

java - OkHttp 对请求启用/禁用 gzip 压缩

我正在使用Retrofit来管理我的请求,并希望进行一些测试以检查使用或不使用gzip的请求大小。默认情况下,OkHttp对请求执行gzip压缩,或者它必须使用interceptor实现?我已经添加了@Headers({"Accept-Encoding:gzip,deflate","Content-Encoding:gzip"})或:@Headers({"Content-Type:application/json;charset=utf-8","Accept:application/json"})我的请求并没有看到请求长度有任何变化。 最佳答案

java - OkHttpClient 在将 Retrofit 更新为 Retrofit 2 后损坏

我从retrofit更新到retrofit2后出现此错误。FATALEXCEPTION:OkHttpDispatcherProcess:nz.co.datacom.mars.junction,PID:21616java.lang.NoSuchMethodError:Novirtualmethodlog(Ljava/lang/String;)VinclassLokhttp3/internal/Platform;oritssuperclasses(declarationof'okhttp3.internal.Platform'appearsin/data/app/nz.co.datacom