已經成功登錄QQ網站,要登錄QQ需要再post一次
通過httpwatch觀察得到如下postdate資料
POST /channel/login2 HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Referer: http://d.web2.qq.com/proxy.html?v=20110331002&callback=2
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727; .NET CLR 4.0.20506; .NET CLR 1.1.4322)
Host: d.web2.qq.com
Content-Length: 246
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: pt2gguin=o0479556915; pgv_pvid=9939982880; pgv_flv=10.0; pgv_r_cookie=11535462382; o_cookie=479556915; pgv_info=ssid=s5883071632&pgvReferrer=; ptui_width=360; ptui_height=187; uin=o0479556915; skey=@dXocUoTBo; ptisp=ctc; ptwebqq=d07acb059ca06e6f3bb70d8f889a6bcf9bee0c379e9afcf039566e78357108e4
r=%7B%22status%22%3A%22online%22%2C%22ptwebqq%22%3A%22d07acb059ca06e6f3bb70d8f889a6bcf9bee0c379e9afcf039566e78357108e4%22%2C%22passwd_sig%22%3A%22%22%2C%22clientid%22%3A%2213439812%22%2C%22psessionid%22%3Anull%7D&clientid=13439812&psessionid=null
----------------------------------------------------------------
從cookies中取得 ptweqq值 并重組如下 clientid 為一個隨機值
PostDate = "r=%7B%22status%22%3A%22online%22%2C%22ptwebqq%22%3A%22" & myC.ptwebqq & "%22%2C%22passwd_sig%22%3A%22%22%2C%22clientid%22%3A%229927991%22%2C%22psessionid%22%3Anull%7D&clientid=9927991&psessionid=null"
PostUrl = "http://d.web2.qq.com/channel/login2"
Inet1.Execute PostUrl, "POST", PostDate
正常應該回傳如下 一個josn的資料
{"retcode":0,"result":{"uin":279925790,"cip":3737104921,"index":1073,"port":47631,"status":"online","vfwebqq":"9c0fc4f0864fe5a239f3ad74cb28758d0c0a927acf5b5ed1290f53cfe89990d1dd0b8ce0b11223aa","psessionid":"8368046764001e636f6e6e7365727665725f77656271714031302e3132382e36362e313132000013d500000981026e04003375951c6d0000000a4064586f63556f54426f6d000000289c0fc4f0864fe5a239f3ad74cb28758d0c0a927acf5b5ed1290f53cfe89990d1dd0b8ce0b11223aa","user_state":0,"f":0}}
但是,我運行上面代碼后卻回傳出錯資訊
html><h1>Error occured:</h1><pre>{function_clause,[{app_util,get_value,
[r,
<<"r=%7B%22status%22%3A%22online%22%2C%22ptwebqq%22%3A%22e763f08816f9b24e861f63ba794a872fb98452045956db5cef82aeafc7b72ea6%22%2C%22passwd_sig%22%3A%22%22%2C%22clientid%22%3A%229927991%22%2C%22psessionid%22%3Anull%7D&clientid=9927991&psessionid=null">>]},
{app_util,prop,3},
{application_util,extract_call_info,3},
{application_util,invoke,3},
{api_web,loop,2},
{mochiweb_http,headers,4},
{proc_lib,init_p_do_apply,3}]}</pre></html>
百思不得其解,會的DX幫幫忙
uj5u.com熱心網友回復:
沒人,自己頂一下uj5u.com熱心網友回復:
我也碰到這問題了,請教uj5u.com熱心網友回復:
你用urllib2 建立一個keep-alive連接試試,豬頭。uj5u.com熱心網友回復:
上面發錯了,我也遇到同樣的問題,求解uj5u.com熱心網友回復:
樓主解決了嗎uj5u.com熱心網友回復:
你截獲的資料(翻譯后)是:r={"status":"online","ptwebqq":"d07acb059ca06e6f3bb70d8f889a6bcf9bee0c379e9afcf039566e78357108e4","passwd_sig":"","clientid":"13439812","psessionid":null}&clientid=13439812&psessionid=null
你發送的資料(翻譯后)是:
PostDate = "r={"status":"online","ptwebqq":"" & myC.ptwebqq & "","passwd_sig":"","clientid":"9927991","psessionid":null}&clientid=9927991&psessionid=null"
很明顯是少了一串字符。
不要更更改clientid試試。
uj5u.com熱心網友回復:
我也遇到相同的問題·~~~有沒有解決的啊~~~!uj5u.com熱心網友回復:
請問這個問題解決了嗎???uj5u.com熱心網友回復:
加上這個 就可以搞定了哦Content-Type: application/x-www-form-urlencoded
uj5u.com熱心網友回復:
因為你在轉碼的時候把=也轉換了,再重新把=替換回來就可以Replace("%3d", "=")uj5u.com熱心網友回復:
Replace("%3d", "=")轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/130483.html
標籤:網絡編程
