0

ポータルからいくつかの画像が必要ですが、ポータルにログインした場合にのみアクセスできます。

C#プログラムでそれを行う必要があります。ユーザー名フィールドとパスワード フィールドは POST メソッドを使用しているため、何のフィールドかわかりません。ログインした後、必要な画像を含む URL をいくつか入力したいと思います。

私は何をすべきか?

私が使用しているログインのために:

 HttpWebRequest httpWReq = (HttpWebRequest)WebRequest.Create(@"http://mysite.com");

            ASCIIEncoding encoding = new ASCIIEncoding();
            string postData = "UsernameFieldName=Something";
            postData += "&PasswordFieldName=SomethingElse";
            byte[] data = encoding.GetBytes(postData);

            httpWReq.Method = "POST";
            httpWReq.ContentType = "application/x-www-form-urlencoded";
            httpWReq.ContentLength = data.Length;

            using (Stream stream = httpWReq.GetRequestStream())
            {
                stream.Write(data, 0, data.Length);
            }

            HttpWebResponse response = (HttpWebResponse)httpWReq.GetResponse();

            string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

次に、別のページにある画像をダウンロードするために使用します:

 using (var client = new WebClient())
            {
                string FileName = @"image.jpg";
                client.DownloadFile("http://mysite.com/Image?imgCode=12345", FileName);
            }
4

1 に答える 1

1

完全な解決策はありませんが、開始するための詳細をいくつか示します。

  • ページソースを見るだけで投稿フィールドが何であるかを把握する

  • ログイン要求を送信したら、認証 Cookie を受け入れる方法を見つけて、それ以降のすべての要求でそれを送信する必要があります。これは、アプリケーションがおそらく Cookie を使用するためです。

ログイン後、このような画像をダウンロードできます

        string imageFile = @"c:\image.jpg";
        using (System.Net.WebClient client = new System.Net.WebClient())
        {
            client.DownloadFile("http://www.somewebsite.com/someimage.jpg", imageFile);
        }

投稿を使用した C# HTTP 要求でhttp 投稿を開始するためのいくつかの例を次に示します。

于 2013-05-02T07:37:27.320 に答える