将HttpsUrlConnection升级为volley / retrofit

时间:2016-03-21 07:44:01

标签: android android-volley retrofit okhttp

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

我目前使用HttpsUrlconnection(SSL)来“成功”登录网站,我需要获取的数据是JSON(以屏幕截图为例)。

enter image description here

登录程序如下:

  1. 执行GET以获取(set-cookie)标头(2,JSESSIONID,PD-S-SESSION-ID)
  2. 使用我的凭据(包括这2个Cookie)执行POST
  3. 执行最终GET以检索HTML页面(登录响应为 JSON)
  4. 抓取HTML响应字符串中隐藏/提供的customerID(仅在成功登录后),需要ID才能获取我正在寻找的实际JSON数据。
  5. 由于我需要的实际数据是用JSON提供的,而我仍然需要开始编写解析代码,我想知道是否应该切换到volley / retrofit,因为这两个是比httpurlconnection快得多。我已经在StackOverflow上做了一些研究/代码查询,关于凌空/改造的INet已经做了一些研究/代码查找,但我似乎无法找到执行登录程序的好例子(我需要这样做)。

    到目前为止的问题:

    • 网站使用重定向(302),可以截击/改造处理这些吗?计划使用'com.mcxiaoke.volley:library:1.0.19'
    • 有2个set-cookie标头,volley只能保存1个set-cookie标头(其他被覆盖?)
    • 如何在排球/改造中结合GET,POST和最终GET?我只能同时找到1个GET,1个POST的例子。我打算使用单身,因为应用程序应该始终连接到INet。

    我的实际问题是重写登录代码,我有(HttpsUrlConnection)排球或改装(如何处理set-cookies,重定向,结合GET和POST方法哪个需要)。实际解析JSON数据(一旦登录)应该没问题。

    不要被误解。我不是要写一些示例代码。 我只是在寻找一些好的指导方针/例子?是否值得升级/获得凌空/改装应该具有的60-70%的速度提升?

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

    提前感谢您的建议。

2 个答案:

答案 0 :(得分:0)

寻找改进指南和用法: http://square.github.io/retrofit/
如果你想使用retrofit2,那么请看看改装后的改变 - 1.9 https://futurestud.io/blog/retrofit-2-upgrade-guide-from-1-9

答案 1 :(得分:0)

在Retrofit2中组合POST / GET请求很简单(您可以同步或异步调用它们),阅读教程。如果您计划在未来的项目中使用Retrofit作为主要的REST客户端,您也可以查看RxJava支持(在那里组合请求很漂亮),但是需要一些时间来完全理解并且感觉它&#34;。< / p>

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

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