刷推送时看到一篇讲retrofit的,想试试其中的post,post什么呢,首先想到的是正方,于是,,就试试吧。(本人小白,之前没有怎么使用过这些框架,若有错误,请大神们指教(/▽╲))
一、抓包
我使用的抓包工具是fiddler 下载地址
然后登录正方并抓取数据
验证码
这个Cookie 很重要,Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。刚开始一直漏掉了这个结果一直登录失败orz,加载验证码时需要获取这个值,之后的访问中都要加入Header。
验证码刷新
在之前的路径上加了一个“?”,可以注意到Cookie中的值也发生了改变。
登录
分析下表单数据
- __VIEWSTATE 隐藏的,,还不知道是什么用,需要传入那一大串值
- txtUserName : 学号
- TextBox2 : 密码
- txtSecretCode : 验证码
- RadioButtonList1:用户类型
- Button1
- lbLanguage
- hidPdrs
hidsc
后四个都不知道是做什么的(原谅我渣orz),传入空字符串就可以了。
好了,分析完,开始写代码
Android Studio添加依赖
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.squareup.okio:okio:1.5.0'
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
compile 'com.google.code.gson:gson:2.6.2'
加上权限
<uses-permission android:name="android.permission.INTERNET" />
定义url
private String codeUrl = "http://202.116.160.170/CheckCode.aspx";
private String loginUrl = "http://202.116.160.170/default2.aspx";
布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation=