猿问

大神进!!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
HUX布斯
浏览 734回答 18
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#后台代码
随时随地看视频慕课网APP
我要回答