0

私はこのコードを持っています

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim logincookie As New CookieContainer


    Dim postData As String = "continue=http%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26feature%3Dheader%26nomobiletemp%3D1%26hl%3Den_US%26next%3D%252F&service=youtube&uilel=3&dsh=-5804339713411277263&ltmpl=sso&hl=en_US&GALX=kpcgpuXEK94&pstMsg=1&dnConn=&checkConnection=youtube%3A4148%3A1&checkedDomains=youtube&timeStmp=&secTok=&Email=" & user_fb.Text & "&Passwd=" & pass_fb.Text & "&signIn=Sign+in&PersistentCookie=yes&rmShown=1"
    Dim tempCookies As New CookieContainer
    Dim encoding As New UTF8Encoding
    Dim byteData As Byte() = encoding.GetBytes(postData)


    Dim postReq As HttpWebRequest = DirectCast(WebRequest.Create("https://accounts.google.com/ServiceLoginAuth"), HttpWebRequest)
    postReq.Method = "POST"
    postReq.KeepAlive = True
    postReq.CookieContainer = tempCookies
    postReq.ContentType = "application/x-www-form-urlencoded"
    postReq.Referer = "https://accounts.google.com/ServiceLoginAuth"
    postReq.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko)"
    postReq.ContentLength = byteData.Length
    Dim postreqstream As Stream = postReq.GetRequestStream()
    postreqstream.Write(byteData, 0, byteData.Length)
    postreqstream.Close()
    Dim postresponse As HttpWebResponse

    logincookie = tempCookies
    postresponse = DirectCast(postReq.GetResponse(), HttpWebResponse)
    tempCookies.Add(postresponse.Cookies)


    Dim postreqreader As New StreamReader(postresponse.GetResponseStream())

    Dim thepage As String = postreqreader.ReadToEnd
    WebBrowser1.DocumentText = thepage


End Sub

YouTube に動画をアップロードするためのツールを作成しようとしていますが、サインインしようとすると Cookie に問題があるようです。

このアクションを実行するには Cookie を許可する必要があると書かれています。どうすればクッキーを有効にできますか?

4

3 に答える 3

0

問題は、参照ページがユーザー マシンにいくつかの Cookie を配置する必要があることです https://accounts.google.com/ServiceLoginAuth

次に、Google にログインしようとすると、ログインする前にこれらの Cookie を確認します。Google は Cookie を見つけるようになります。解決策は、最初に参照ページにアクセスしCookieContainer、そのページで使用してからコードを呼び出すことで、100% 機能します。

問題を論理的に解決してから、コードのエラーについて考えてみてください。

于 2013-07-05T17:53:40.640 に答える
0

最初にもう 1 つの Cookie コンテナーを定義します。

Dim oRequestCookie As New CookieContainer

追加してみる

 CType(postReq, HttpWebRequest).CookieContainer = oRequestCookie 

HttpWebRequest パラメーターを定義するとき。そして最後に、すでに行ったようにログイン Cookie を抽出できます。乾杯。

于 2013-04-04T11:23:29.893 に答える