问题标签 [okhttp3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 当使用 Okhttp 和 GSON 库解析 JSON 响应时,我会在主线程异常上获取网络
我已经在我的项目 gradle 文件中给出了依赖项,如下所示。
编译'com.google.code.gson:gson:2.4'
编译'com.squareup.okhttp3:okhttp:3.1.2'
我收到异常android.os.NetwokOnMainThreadException
我不知道如何解决这个问题,因为我已经查看了下面链接中给出的 OKHTTP 食谱表格。 https://github.com/square/okhttp/wiki/Recipes
android - If-None-Match 没有在我的请求中通过
我已经看到关于这个主题的长时间讨论,并且声称它已在 2.3.0 中修复。这是我正在使用的组合
我在收到的回复中看到的日志有 Etag;但是我的后续请求没有在其标头中传递 If-None-Match 。我通过我的代码显式插入 If-None-Match 对其进行了测试,缓存有效并且预期响应。所以我使用的库版本肯定有问题,或者我的代码有什么不好的地方。
这里我设置了okClient。
我的标头拦截器包含非常关注我的 API 本身的逻辑。这里是
这是我设置缓存的方法。
寻找一些快速有效的响应,因为我已经花了合理的时间找到解决方案,但没有运气。
谢谢
java - 从邮递员获得 OKHTTP 不同的结果
我正在尝试从服务器获取一些数据。主要问题是我没有服务器访问权限,但我当然知道请求详细信息,我使用 PostMan 测试服务器调用,而不是使用 OkHttp 在 android 上实现它们。
这是我使用 HttpUrlConnection 或 OkHttp 从 android 端的服务器获得的信息:
{"collection":{"version":"1.0","href":" http://development.abc.com:80/ ","links":[{"href":"#","rel" :"header","prompt":"学生"},{"href":"#","rel":"header","prompt":"CFA"},{"href":"signup"," rel":"header trial","prompt":"免费试用"},{"href":"about","rel":"footer sidebar","prompt":"About"},{"href": "推荐","rel":"页脚侧边栏","prompt":"推荐"},{"href":"contact","rel":"footer","prompt":"联系方式"},{"href":"faq","rel":"footer sidebar","prompt":"FAQs"},{"href":"login","rel":"login","prompt “:“登录”}],.......
我在两边都使用相同的标题,即
并使用相同的凭据进行测试登录:
奇怪的是,相同的服务器调用在 PostMan 中给出了以下数据
{“集合”:{“版本”:“1.0”,“href”:“ http://development.abc.com:80/ch/re/videos ”,“链接”:[{“href”:“ http ://development.abc.com:80/ch/re/vr ", "rel": "menu vrated", "prompt": "Vrated" }, { "href": " http://development.abc .com:80/user/watcr ", "rel": "menu watchlater", "prompt": "稍后观看" }...
这是我的代码:
同一个服务器调用如何返回不同的结果。
我从“ Curl 的结果与 Postman 的结果不同”中检查了一个还应该添加user agent
标题的人,所以我也尝试了这个,但没有运气。
还有一件事,如果我为此调用使用了错误的凭据(即正文:电子邮件、密码),我在 Okhttp 和 PostMan 上都会收到相同的错误。
谢谢。
android - 使用 retrofit2+okhttp3 缓存响应数据
我在网络请求中使用 retrofit_2 (beta4) 和 okhttp_3 库。当网络关闭并且应用程序必须显示上一个相同请求的响应数据时,我需要缓存响应数据。我发现的所有解决此问题的指南都使用 okhttp lib(不是 okhttp_3)。我试图解决问题:
但这不起作用。所有请求在网络开启时都能正常工作,但在网络关闭时不会返回缓存数据。请帮忙解决这个问题。
android - 创建 gradle 依赖项 - 删除对其自身依赖项的访问权限
我正在开发的一个未发布的 android 库中有一个第三方网络库——在这种情况下是 OkHttp。
使用此库作为依赖项的项目现在也可以使用该网络库创建对象。
我可以限制或禁用对包含在我的库中的网络库的访问吗?
android - 将 mp4 视频上传到服务器,SSLException
通过 okhttp3 将视频上传到服务器时出现 SSLException。
错误是
视频大小为 15.5 MB。有没有想过我做错了什么?先感谢您!
我能够发送小于 5MB 的大小。在后端我被告知设置限制'client_max_body_size' == 60MB
java - 我在哪里可以获得在 jdk 1.6 中编译的 OkHttpClient 版本?在 WAS 7 上运行时出现 UnsupportedClassVersionError
java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version;class=okhttp3/MediaType, offset=6 这是我在 WAS 7 上运行代码时遇到的异常。我认为 okhttp 代码是使用 Java 7 或更高版本编译的,当我尝试在 WAS 7 上使用它时使用 java 6。我正在使用来自 http://square.github.io/okhttp/的最新 jar (v 3.2)
java - 使用 byteStream 时 OkHttpClient 泄漏连接
我的 Logcat 消息中不断收到连接泄漏警告,即使我已经关闭了我发出的每个请求的每个正文。
我有两个用于 GET 和 POST 请求的包装器方法,它们启动请求并传回响应。
我有第三种方法,它InputStream
通过body().byteStream()
像这样读取响应来处理将响应主体转换为字符串。
每个单独的getRequest()
或postRequest()
我调用的方法都跟随着该getResponseBodyAsString()
方法,如果用户在请求之间注销,则主体也将关闭。但是我仍然收到连接泄漏警告..
如果您需要任何其他代码,请随时询问。
提前谢谢。
编辑
另一个代码块,不知道是否会有所帮助。每个调用getRequest()
或postRequest()
封装在ASyncTask
捕获任何异常的对象中的单个对象。
现在,没有什么可以关闭body()
这些响应的,但是,在零情况下,当我看到泄漏警告时,会被ASyncTask
取消。所以不能有任何异常阻止它被关闭。
编辑2
阅读这篇文章后,我意识到如果您手动添加“Accept-Encoding...gzip”标头,GZIP 不是透明处理的。删除手动添加确实可以透明地对其进行解码,但是,我在响应正文中只得到了一行文档。
GZIP 透明处理
<td align="center"><img width="208" height="110" src="images/alert_loginlogo.gif" /></td
从字面上看,这就是我得到的全部。如果我自己处理解码流,我可以毫无问题地获得整个文档。
这可能是图书馆中的一个错误,我在这里不知所措。
android - Android,okhttp同时上传文件和json
我okhttp3,想可以上传文件,上传json数据,但是发现只能同时上传HashMap,请问,怎么上传JSON?发现RequestBody类方法create,上传json和上传文件方法都重载了