将 HttpsUrlConnection 升级到 volley/retrofit

Upgrade HttpsUrlConnection to volley/retrofit

我正在寻找有关以下情况的建议:

我目前使用HttpsUrlconnection (SSL)'successfully'登录一个网站,我需要获取的数据是JSON(以下截图为例)。

登录流程如下:

  1. 执行 GET 获取 (set-cookie) headers(2,JSESSIONID,PD-S-SESSION-ID)
  2. 使用我的凭据(包括这 2 个 cookie)执行 POST
  3. 执行最终 GET 以检索 HTML 页面(登录响应为 no JSON)
  4. 获取HTML响应字符串中hidden/provided的customerID(仅在成功登录后),需要ID才能获取实际的JSON数据我在找

由于JSON中已经提供了我需要的实际数据,我还需要开始写解析代码,我在想是否应该切换到 volley/retrofit 因为这两个比 httpurlconnection 快得多。我已经在 Whosebug 和 INet 上做了一些 research/code 查询 volley/retrofit 但我似乎找不到很好的例子来执行登录过程(我需要这样做)。

目前的问题:

我的实际问题是重写我拥有的登录代码 (HttpsUrlConnection) 以截取或改造(如何处理 set-cookies , 重定向,结合需要的 GET 和 POST 方法)。 JSON 数据的实际解析(登录后),应该没有问题。

不要误会。我不是要给我写一些示例代码。 我只是在寻找一些好的guidelines/examples? upgrade/gain volley/retrofit 应该有的 60-70% 的速度提升值得吗?

或者我应该省去麻烦并坚持我的工作 HttpsUrlConnection asynctask 吗?

预先感谢您的建议。

查找改造指南和用法: http://square.github.io/retrofit/
如果您想使用 retrofit2,请查看 retrofit-1.9 的 imp 变化 https://futurestud.io/blog/retrofit-2-upgrade-guide-from-1-9

在 Retrofit2 中组合 POST/GET 请求很容易(您可以同步或异步调用它们),请阅读教程。如果你计划在未来的项目中使用 Retrofit 作为你的主要 REST 客户端,你也可以看看 RxJava 支持(组合请求在那里很漂亮),但它需要一些时间来完全理解和 "feel it".

Retrofit 可以处理重定向,cookie 也应该不是问题。准确的说,这真的不是Retrofit的问题,而是Retrofit所基于的OkHttp客户端。您还需要设置 CookieManager 和 CookieStore。有用的链接:1 2 3 4 5

所以...Retrofit 可以处理您的所有任务,但很难说它是否会工作得更快。如果您打算只重写这个登录模块并且您当前的代码有效,我不确定是否值得切换到另一个库。除非那个登录时间真的很长而且不能接受,否则请尝试一下(如果有帮助,请稍后与我们分享)。