登录和下载图像与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);
}
我没有一个完整的解决方案,但是这里有一些细节可以让你开始。
-
只需查看页面源代码就可以知道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