Я пытаюсь сделать 2 почтовых запроса в одном сеансе, но второй всегда дает мне исходный код html домашней страницы ...
2 функции делают одно и то же: doотправьте запрос и добавьте его в контейнер cookie.В конце 2-й функции строка ответа отправляет мне исходную HTML-страницу домашней страницы, а не ту, которой я был раньше.Принимая во внимание, что responsesetring (когда я попробовал это прежде) в первом запросе отправляет мне хорошую исходную страницу html.
Вот мой код:
private CookieContainer cookieContainer;
private void SendRequest_add_to_cart(string url, string data_style_id, string size)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
if (this.cookieContainer != null)
request.CookieContainer = this.cookieContainer;
else
request.CookieContainer = new CookieContainer();
var postData = "utf8=✓";
postData += "style=" + data_style_id;
postData += "size=" + size;
postData += "commit=add to basket";
var data = Encoding.ASCII.GetBytes(postData);
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
this.cookieContainer = request.CookieContainer;
}
private void SendRequest_checkout(string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
if (this.cookieContainer != null)
request.CookieContainer = this.cookieContainer;
else
request.CookieContainer = new CookieContainer();
var postData = "utf8=✓";
postData += "order[billing_name]=toto";
postData += "order[email]=toto@gmail.com";
var data = Encoding.ASCII.GetBytes(postData);
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
this.cookieContainer = request.CookieContainer;
Console.WriteLine(responseString);
}
вот моя функция, которая запускает ранее:
var url_add_to_cart = link_general + doc.DocumentNode.SelectSingleNode("//form").Attributes["action"].Value;
var url_checkout = link_general + "/checkout.json";
SendRequest_add_to_cart(url_add_to_cart, data_style_id, size);
SendRequest_checkout(url_checkout);
Если у кого-то есть идея помочь мне, это будетотличный!большое спасибо!