登录和下载图像与c#

本文关键字:图像 下载 登录 | 更新日期: 2023-09-27 18:11:50

我需要一些来自门户的图像,只有当我登录到门户时才能访问它们。

我需要用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);
            }

登录和下载图像与c#

我没有一个完整的解决方案,但是这里有一些细节可以让你开始。

  • 只需查看页面源代码就可以知道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 postpost
的HTTP请求