[英]C# How can I call multiple POST, GET requests with same cookie via HttpWebRequest?
[英]how to do multiple post requests with cookie containers c#
我正在嘗試在同一會話上執行2個發布請求,但是第二個請求總是給我主頁的html源代碼...
這兩個函數的作用完全相同:執行發布請求並將其添加到Cookie容器中。 在第二個函數的末尾,響應字符串向我發送了主頁的html源頁面,而不是以前的頁面。 而第一個發布請求中的responsetring(在我之前嘗試過的時候)向我發送了很好的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);
如果有人有幫助我的想法,那就太好了! 非常感謝你!
感謝@Hesam Fraridmehr,這是答案:
在這樣的行中添加:&:-postData + =“&style =” + data_style_id;
希望對別人有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.