2017-09-18 216 views
-2

我想要创建一个Instagram的一个方法,但我无法弄清楚如何获得该cookie自动Instagram的注册HttpWebRegister

我的老方法:

Function register() 

    Dim postData As String = "email=" & EmailBox.Text + "@gmail.com" & "&password=" & PassBox.Text & "&username=" & UserBox.Text & "&first_name=" & NameBox.Text 
    Dim encoding As New UTF8Encoding 
    Dim byteData As Byte() = encoding.GetBytes(postData) 

    Dim request As HttpWebRequest = DirectCast(WebRequest.Create("https://www.instagram.com/accounts/web_create_ajax/"), HttpWebRequest) 
    request.Method = "POST" 
    request.KeepAlive = True 
      request.Headers.Add("X-CSRFToken", "q4NBIiEDDiPwGliNk6xxxxW9IooCHm") 
    request.ContentType = "application/x-www-form-urlencoded" 
    request.Headers.Add("X-Instagram-AJAX", "1") 
    request.Headers.Add("X-Requested-With", "XMLHttpRequest") 
    request.Headers.Add("Cookie", "mid=WZWf8QALxxxxcWsM-P1hm5F; csrftoken=q4NBIiEDDixxxxZrW9IooCHm; rur=FTW; ig_vw=16; ig_pr=1; ig_vh=4") 

    request.Referer = "https://www.instagram.com/" 
    request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1" 
    request.ContentLength = byteData.Length 

    Dim requestStream As Stream = request.GetRequestStream() 
    requestStream.Write(byteData, 0, byteData.Length) 
    requestStream.Close() 

    Dim responseS As HttpWebResponse 
    responseS = DirectCast(request.GetResponse(), HttpWebResponse) 

    Dim Reader As New StreamReader(responseS.GetResponseStream()) 
    Dim thepage As String = Reader.ReadToEnd 
    If thepage.Contains("This username isn't available. Please try another") Then 
     Label6.ForeColor = Color.DarkRed 
     Label6.Text = UserBox.Text + "Has been fail register !!" 
    Else 
     Label6.ForeColor = Color.LightGreen 
     Label6.Text = UserBox.Text + "Has been successfully register !!" 
    End If 
    TextBox1.Text = thepage 
End Function 

我怎样才能得到该cookie自动?

回答

0

你去了。这是登录到ASP.NET MVC网站的示例。寻找Cookiejar来检索它们。

Dim tclient As HttpClient 
    Dim cookiejar As New CookieContainer 
      cookiejar = handler.CookieContainer 
      Dim xResponse As HttpResponseMessage = Await (tclient.GetAsync(BaseAddress & LoginUrl)) 
      Dim xcookies As CookieCollection = cookiejar.GetCookies(New Uri(BaseAddress & LoginUrl)) 
      For Each tCookie As Cookie In xcookies 
       If tCookie.Name = "__RequestVerificationToken" Then vCookie = tCookie : VerificationToken = tCookie.Value : Exit For 
      Next 

      Dim body As String = Await (xResponse.Content.ReadAsStringAsync()) 
      Dim htdoc As New HtmlAgilityPack.HtmlDocument 
      htdoc.LoadHtml(body) 
      Dim xxdoc As HtmlNode = htdoc.GetElementbyId("loginform") 
      For Each xnodes As HtmlNode In xxdoc.Elements("input") 
       If xnodes.Attributes(0).Value = "__RequestVerificationToken" Then 
        FormValidationToken = xnodes.Attributes(2).Value 
       End If 
      Next