将 HttpsUrlConnection 升级到 volley/retrofit
Upgrade HttpsUrlConnection to volley/retrofit
我正在寻找有关以下情况的建议:
我目前使用HttpsUrlconnection (SSL)'successfully'登录一个网站,我需要获取的数据是JSON(以下截图为例)。
登录流程如下:
- 执行 GET 获取 (set-cookie) headers(2,JSESSIONID,PD-S-SESSION-ID)
- 使用我的凭据(包括这 2 个 cookie)执行 POST
- 执行最终 GET 以检索 HTML 页面(登录响应为 no JSON)
- 获取HTML响应字符串中hidden/provided的customerID(仅在成功登录后),需要ID才能获取实际的JSON数据我在找
由于JSON中已经提供了我需要的实际数据,我还需要开始写解析代码,我在想是否应该切换到 volley/retrofit 因为这两个比 httpurlconnection 快得多。我已经在 Whosebug 和 INet 上做了一些 research/code 查询 volley/retrofit 但我似乎找不到很好的例子来执行登录过程(我需要这样做)。
目前的问题:
- 该网站使用重定向 (302),volley/retrofit 可以处理这些吗?计划使用 'com.mcxiaoke.volley:library:1.0.19'
- 有2个set-cookieheader,volley只能存1个set-cookieheader(其他都被覆盖了?)
- 如何在 volley/retrofit 中组合 GET、POST 和最终 GET?我只能同时找到 1 GET,1 POST 的例子。我打算使用 单例,因为该应用程序应该经常连接到 INet。
我的实际问题是重写我拥有的登录代码 (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 可以处理您的所有任务,但很难说它是否会工作得更快。如果您打算只重写这个登录模块并且您当前的代码有效,我不确定是否值得切换到另一个库。除非那个登录时间真的很长而且不能接受,否则请尝试一下(如果有帮助,请稍后与我们分享)。
我正在寻找有关以下情况的建议:
我目前使用HttpsUrlconnection (SSL)'successfully'登录一个网站,我需要获取的数据是JSON(以下截图为例)。
登录流程如下:
- 执行 GET 获取 (set-cookie) headers(2,JSESSIONID,PD-S-SESSION-ID)
- 使用我的凭据(包括这 2 个 cookie)执行 POST
- 执行最终 GET 以检索 HTML 页面(登录响应为 no JSON)
- 获取HTML响应字符串中hidden/provided的customerID(仅在成功登录后),需要ID才能获取实际的JSON数据我在找
由于JSON中已经提供了我需要的实际数据,我还需要开始写解析代码,我在想是否应该切换到 volley/retrofit 因为这两个比 httpurlconnection 快得多。我已经在 Whosebug 和 INet 上做了一些 research/code 查询 volley/retrofit 但我似乎找不到很好的例子来执行登录过程(我需要这样做)。
目前的问题:
- 该网站使用重定向 (302),volley/retrofit 可以处理这些吗?计划使用 'com.mcxiaoke.volley:library:1.0.19'
- 有2个set-cookieheader,volley只能存1个set-cookieheader(其他都被覆盖了?)
- 如何在 volley/retrofit 中组合 GET、POST 和最终 GET?我只能同时找到 1 GET,1 POST 的例子。我打算使用 单例,因为该应用程序应该经常连接到 INet。
我的实际问题是重写我拥有的登录代码 (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 可以处理您的所有任务,但很难说它是否会工作得更快。如果您打算只重写这个登录模块并且您当前的代码有效,我不确定是否值得切换到另一个库。除非那个登录时间真的很长而且不能接受,否则请尝试一下(如果有帮助,请稍后与我们分享)。