webbrower的小问题 80分相送!不够可以再加!
问题是这样的
我要获取这个歌曲的地址
http://9494.net/Play_rm.asp?songid=542可是我发现我直接访问就可以放歌
我看他的源代码
知道他的地址文件是
http://9494.net/player.asp?songid=542但是我直接用webbrower去访问他却发现他的内容不对
即使我用winsock完全按照他访问的格式去访问这个地址
wpe下看发送的包完全一样
也得不到正确地址
返回的是下列代码
HTTP/1.1 200 OK
Date: Fri, 30 Jun 2006 15:05:08 GMT
Server: Microsoft-IIS/6.0
Content-Length: 49
Content-Type: text/html
Set-Cookie: ASPSESSIONIDACDCBATC=GFEICFHCACHMPNLOLLJENDPO; path=/
Cache-control: private<script>if(top==self)top.location="/" </script>请问这是怎么回事
肯定webbrower是可以的因为我用webbrower访问http://9494.net/player.asp?songid=542完全可以听歌!如果解决了 开帖再给分!

解决方案 »

  1.   

    http://mix.9494.net:9999/cs/调皮的蟑螂.rm
    是这个地址的,连接不上的话就会弹出这个对话框了.具体的情况我再看下.嘿嘿我是菜鸟,
      

  2.   

    ?
    ?
    
    e?贖TTP/1.1 200 OK
    Date: Fri, 30 Jun 2006 16:27:54 GMT
    Server: Microsoft-IIS/6.0
    pragma: no-cache
    cache-control: private
    Content-Length: 43
    Content-Type: application/x-javascript
    Expires: Thu, 29 Jun 2006 16:27:54 GMT
    Cache-control: no-cache
    http://mix.9494.net:9999/cs/调皮的蟑螂.rm
    这个是我用SNIFFER监听得到的地址.你上面为什么出现哪个情况是你忽略了缓存和COOKIE这个是你受到上面的
    ?
    ?
    
    e?贖TTP/1.1 200 OK
    Date: Fri, 30 Jun 2006 16:27:54 GMT
    Server: Microsoft-IIS/6.0
    Content-Length: 49
    Content-Type: text/html
    Cache-control: private<script>if(top==self)top.location="/" </script>的原因
      

  3.   

    发送的格式是这样的:
    
    ?
    ?
    ?GET /player.asp?songid=542 HTTP/1.1
    Accept: */*
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2; .NET CLR 2.0.50727; (R1 1.5))
    Host: 9494.net
    Connection: Keep-Alive
    Cookie: cnzz02=4; rtime=0; ltime=1149179064437; cnzz_eid=89297596-; ASPSESSIONIDACDCBATC=FGFICFHCKGELAFNOBIJNLAOP
    ?e
      

  4.   

    不是的你可以试下就知道了他一个session只能用一次我完全按照他的session发出的winsock包
    他没有正确的返回你看wpe包你也会发现 其实就是他自己页面访问那个地址也只有第一次可以第二次是不行的我现在的问题就是想问如何伪造这个session用webbrower或者wininet都可以
      

  5.   

    是的啊,每次连接都重新分配了,也就是说你每次都必须去读COOKIES了,然后传特定的SESSION过去啊.
      

  6.   

    Inet与WebBrowser是可以保持住同一个Session对话的!不过当我们在WebBrowser中显示出来的页面上点击了一个连接之后,请求却不能成功(请读者自己试一下,在登陆成功的站点中任意点击一个与用户相关的连接,弹出来的将是一个“你没有登陆”的页面)。为什么? 因为我们现在点击的连接还是使用IE(操作系统默认的浏览器)打开的,而IE请求页面的时候使用的是服务器新发送过来的Session,这个新的Session与你在WebBrowser中使用的Session也就是身份ID不一样,至少服务器是这么认为的,它以为是另一个没有登陆的用户。所以说Session的作用范围不是对整个客户机的,通过实际的代码可以很好的理解这一点。(可以利用这一点,使用代码在一台电脑上实现两个以上的用户同时登陆,甚至还能对同一主题进行无缝发言。)所以接下来我们要使页面继续停在WebBrowser中显示。因为很显然,既然WebBrowser与Inet是可以保持住同一个Session对话的,那么WebBrowser与WebBrowser内部自然也是可以的!要添加的代码很简单——Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)    Dim frm2 As New Form2    frm2.WebBrowser1.RegisterAsBrowser = True    Set ppDisp = frm2.WebBrowser1.Object    frm2.ShowEnd Sub然后在工程中添加一个Form2,上面再放一个WebBrowser1,调整好位置,Form2的代码窗口添加上以下代码:Private Sub Form_Load()WebBrowser1.Silent = TrueEnd Sub Private Sub Form_Resize()If Me.WindowState <> 1 Then    WebBrowser1.Left = 10    WebBrowser1.Width = Me.Width - 120    WebBrowser1.Height = Me.Height - 600End IfEnd SubPrivate Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)’这里为了避免在Form1中同样发生的事情。    Dim frm2 As New Form2    frm2.WebBrowser1.RegisterAsBrowser = True    Set ppDisp = frm2.WebBrowser1.Object    frm2.ShowEnd Sub利用Inet发送登陆请求,WebBrowser浏览实际页面,的确是个很不错的构思,在登陆站点相对教少的情况下应该是没有什么问题的。但是这也会使事情变得更加复杂。除了不能缺少的POST地址(URL1)、帐号参数(C1)、密码参数(C2)、其它参数(C3)之外,还必须要有供WebBrowser请求浏览的页面地址参数(URL2)。 虽然只是多了一个参数,但却添加了很多麻烦(比如网易邮箱的请求页面是根据用户的帐号名自动生成的,不固定)。只有利用WebBrowser直接POST数据才能避免第四个参数。但是浏览器的界面以及功能却是一个比较麻烦的问题(除非你不嫌麻烦,自己再动手写一个)。看下这个你就明白了http://www.mf100.com/document/2005-4/421.shtml