请求url
可以看到如下结果:
请求的URL是 reqauth.aspx,这是发起认证的第一步,这个请求的返回结果是一个 XML 数据,包含一个 ReqID,用户授权的地址 AuthUrl 以及查询结果的地址 ResultUrl。
如果直接访问这个地址,会提示缺少参数。
加上参数ReqID=22848904
加上请求数据
因此完整的结果查询url要加上?ReqID=22848904&ReqData={ReqData}。
同时可以看见,第一次请求的结果是xml格式,第二次是json格式。
我的思路如下:
- 通过http发送Get请求。
- 用NativeXML解析出其中的AuthUrl和ResultUrl。
- 将AuthUrl用IBarCode2D转换为二维码显示在界面上待用户扫码验证。
- 最后用ResultUrl拼接上?ReqID=22848904&ReqData={ReqData}得到查询授权结果的url。
- 在定时器中不断通过http发送Get请求给ResultUrl,通过SuperObject解析其中的errmsg,如果为’ok.',那么解析UserId,将结果显示在界面中。
总结:通过HTTP请求获取认证ID、生成二维码、等待用户授权、并轮询查询结果。
设计:
初始化:
解析xml:
定时器轮询查看授权结果:
解析json中的errmsg:
另一个刷新二维码的定时器: