2016-06-17 35 views
0

我想執行與我已保存在文件中的cookie該請求(Cookie是好的,因爲我可以執行其他請求頁面)POST請求在VB.NET不能正常工作

http://www.banggood.com/index.php?com=event&t=recordSignInShare&fb_id=197203087314503_251208398580638&code= 

是,最後一個參數應該是空的。 當我在瀏覽器中打開它時,它給了我json數據(不管他們看起來如何) 但是當我嘗試在vb.net應用程序上做同樣的請求時,它將我重定向到另一頁。 下面是從VB代碼:

Dim postData As String = "com=event&t=recordSignInShare&fb_id=197203087314503_251208398580638&code=" 
    Dim bytes() As Byte = ASCIIEncoding.UTF8.GetBytes(postData) 
    Dim postReq As HttpWebRequest = WebRequest.Create("http://www.banggood.com/index.php") 
    postReq.Method = "POST" 
    postReq.KeepAlive = True 
    postReq.CookieContainer = cookies 
    'postReq.ContentType = "application/x-www-form-urlencoded; charset=UTF-8" 
    postReq.Referer = "http://www.banggood.com/" 
    postReq.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36" 
    postReq.ContentLength = bytes.Length 
    Dim postStream As Stream = postReq.GetRequestStream() 
    postStream.Write(bytes, 0, bytes.Length) 
    postStream.Close() 
    Dim postResponse As HttpWebResponse 
    postResponse = postReq.GetResponse() 
    cookies.Add(postResponse.Cookies) 
    Dim reader As New StreamReader(postResponse.GetResponseStream()) 
    Dim strSource As String = reader.ReadToEnd 
    Return strSource 

,並返回我的HTML代碼,而不是JSON數據:(

這是如何從網絡監視器查看請求時,我通過瀏覽器打開它 請求:

Accept:application/json, text/javascript, */*; q=0.01 
Accept-Encoding:gzip, deflate, sdch 
Accept-Language:pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4 
Connection:keep-alive 
Host:www.banggood.com 
Referer:http://www.banggood.com/2016midyear.html?utmid=796 
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36 
X-Requested-With:XMLHttpRequest 

響應: 緩存控制:最大年齡= 0,無緩存,無店鋪 連接:保活 的Content-Length:94 內容類型:text/html的; charset = utf-8 我認爲原始的(從代碼)請求/響應頭文件並不重要,因爲我可以通過在瀏覽器中打開此鏈接來正確執行它。

+0

當你複製/粘貼到瀏覽器的URL,它做了GET而不是POST。 –

+0

我知道,但其他請求得到,我用後,他們的工作。我會檢查你的想法 – kaska3er

+0

當你嘗試它時,確保你發送信息作爲querystring(url的一部分)。 –

回答