大神进!!winform程序怎么模拟在地址栏输入url,然后获取执行后的url
例如我现在有个url:http://s.click.taobao.com/t?e=zGU34CA7K%2BPkqB07S4%2FK0CITy7klxn%2Fr3HZwuuY0VC7BwYV5BmFnvKI7HGDxM%2FgYRB%2FsRLBp%2FBJkoSEFH4Vgeix0DJ4W%2B9nMtBRAj70c%2FSCHnqz9c%2BzFKUTZVtJfc9yDLq4m%2FQEHz4pnFds74oNbPKSJ8An7CAMiFtUwprB5kUAqRgyQE7o25Dp4i53QkgcmrA%3D%3D&spm=2014.21319780.1.0
在输入地址栏回车后转换为:http://item.taobao.com/item.htm?id=15494369708&ali_trackid=2:mm_32826865_0_0:1364959209_4k3_167280768&spm=2014.21319780.1.0
需求:我用C#代码怎么通过第一个url得到第二个url
18回答
-
幕布斯7119047
这是个重定向的链接,并且要获取到你要的那个链接需要跳转3次,一次302,一次js跳转,再302即可获取目标。
2楼的方法是可行的,只是没说到点子上。使用HttpWebRequest 去请求这个连接。必须设HttpWebRequest的AllowAutoRedirect属性为false。这样HttpWebRequest就不会去自动重定向。请求完成之后可以在响应头中获取Location即可获取到链接1。
拿链接1再去请求,获取网页内容。拿到内容之后这步比较复杂,你需要分析js,并按照js的算法生成链接2.用HttpWebRequest去请求链接2,请求完成之后可以在响应头中获取Location即是你需要的链接。
我估计你很难用HttpWebRequest实现,简单点的方法就是webbrowser控件,待相应完成的时候,获取他的Url属性就行了。
-
一只名叫tom的猫
其实你就是想获取他后面的ID,分析它URL的变化规律然后改变URL参数。
-
慕码人8056858
分析太复杂,我就希望有没有一个方法去请求下这个url,然后返回新的url
-
互换的青春
使用HttpWebRequest访问一下,然后获取返回的数据中的url
-
翻翻过去那场雪
@艾编程: 这个地址返回的是一个302,所以,你应该读取location中的值
-
小唯快跑啊
@艾编程: 查看header中的Location
-
RISEBY
URL中的ID等信息 被JS中的escape()函数编码了,
用unescape() 函数可对通过 escape() 编码的字符串进行解码即可
-
米琪卡哇伊
希望用C#代码去解析出来
-
有只小跳蛙
先解码原始url,然后分解querysting,再分析javascript加密步骤,用c#拼出最终地址
-
牧羊人nacy
没有web和js,纯C#后台代码