0

ログインが必要なサイトからダウンロードする必要があるファイルのリストがあります。適切な HttpRequestHeader.Cookie が設定されていない限り、ファイルはダウンロードされません。

手動でサイトにログインし、フィドラーを介してヘッダーを取得し、これらを Cookie スロットに渡すと、ファイルがダウンロードされます。私がやろうとしているのは、(Telerik テスト フレームワークを使用して) サイトに移動し、ログインして、ダウンロードする必要がある URL を読み取り、WebClient.DownloadFile を呼び出すことです。

Telerik を介してファイルをダウンロードしようとしましたが、ジョブを Windows Server に展開すると問題が発生しました。

多くのグーグル検索の後、URL を収集しているページに移動した後、Telerik を介して HttpRequestHeaders をプルする方法がまだわかりません。これらは、ファイルをダウンロードするために WebClient に渡す必要がある正しい値である必要があります。 .

誰かが私を正しい方向に向けたり、代替案を提供したりできますか?

前もって感謝します。

        Using client
            client.Credentials = New NetworkCredential("user", "pass")
            client.Headers.Add(System.Net.HttpRequestHeader.Accept, "*/*")
            client.Headers.Add(System.Net.HttpRequestHeader.AcceptEncoding, "gzip, deflate")
            client.Headers.Add(System.Net.HttpRequestHeader.AcceptLanguage, "en-US")
            client.Headers.Add(System.Net.HttpRequestHeader.UserAgent, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)")
            client.Headers.Add(System.Net.HttpRequestHeader.Cookie, "WLP-COOKIE1=r1593517685; JSESSIONID=Sz6G1lpvwhGB6FmqN6ySPbtf2cK2fs09hTtsX2sqcSwtLL7rKzpy!-1832769242; iPlanetDirectoryPro=AQIC5wM2LY4SfczHcm5%2FeHFKpWlxpQ71jtwzwJ75uHryjzA%3D%40AAJTSQACMTAAAlMxAAIwMQ%3D%3D%23; MMISPRODPOSCsource=AQIC5wM2LY4SfczHcm5%2FeHFKpWlxpQ71jtwzwJ75uHryjzA%3D%40AAJTSQACMTAAAlMxAAIwMQ%3D%3D%23")
            client.Headers.Add(System.Net.HttpRequestHeader.Referer, "https://mysite.com")
            client.DownloadFile(url, file)
        End Using
4

2 に答える 2

0

最後にこれに出くわしましたが、Telerik を使用するとかなり簡単でした。この関数の結果を Web クライアントの Cookie ヘッダーに渡すだけです。

Public Function GetCookies(ByVal url As String) As String

    Dim cookies As String

    For Each cookie In xBrowser.Cookies.GetCookies(url)
        If String.IsNullOrEmpty(cookies) Then
            cookies &= cookie.ToString
        Else
            cookies &= "; " & cookie.ToString
        End If
    Next

    Return cookies

End Function
于 2013-11-05T18:02:35.987 に答える