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

我没有完整的解决方案,但这里有一些细节可以帮助您入门。

  • 只需查看页面源即可弄清楚什么是 post 字段

  • 一旦您发送登录请求,您还需要找到一种方法来接受身份验证 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 回答