Я взял этот код из одного из блогов MSDN и добавил веб-клиент для загрузки ресурса.
string formUrl = "My login url";
string formParams = string.Format("userName={0}&password={1}&x={2}&y={3}&login={4}", "user", "password","0","0","login");
string cookieHeader;
WebRequest req = WebRequest.Create(formUrl);
req.ContentType = "application/x-www-form-urlencoded";
req.Method = "POST";
byte[] bytes = Encoding.ASCII.GetBytes(formParams);
req.ContentLength = bytes.Length;
using (Stream os = req.GetRequestStream())
{
os.Write(bytes, 0, bytes.Length);
}
WebResponse resp = req.GetResponse();
cookieHeader = resp.Headers["Set-cookie"];
string pageSource;
string getUrl = "Resource url";
WebRequest getRequest = WebRequest.Create(getUrl);
getRequest.Headers.Add("Cookie", cookieHeader);
WebResponse getResponse = getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
pageSource = sr.ReadToEnd();
System.Console.WriteLine(sr.ToString());
}
WebClient wc = new WebClient();
wc.Headers["Content-Type"] = "application/x-www-form-urlencoded";
wc.DownloadFile("Resource url","C:\\abc.tgz");
Console.Read();
Но abc.tgz не такой, каким должен быть. Поэтому, когда я открыл его с помощью блокнота, я заметил, что это исходный файл страницы «Мой URL-адрес для входа»... Где я ошибаюсь?
Есть ли какое-либо свойство веб-клиента, которое я могу использовать, чтобы увидеть ошибку .. т.е. .. базовый адрес и т. д.?
getUrl
отличается отformUrl
. Должны ли они быть двумя отдельными запросами? - person Bala R   schedule 10.06.2011