C# 将多个请求头传递到libcurl.net

C# 将多个请求头传递到libcurl.net,c#,ajax,cookies,curl,libcurl.net,C#,Ajax,Cookies,Curl,Libcurl.net,我最近开始在我的一个项目中使用libcurl.net,作为HttpWebRequest和HttpWebResponse类的替代品。我选择使用libcurl.net而不是托管类的原因是libcurl.net模仿了PHP中cURL的行为,并且我在移植PHP中的一些代码。我试图使用内置的托管类,但是CookieContainer类没有从我试图从中捕获Cookie的网站正确捕获所有Cookie。如果我能找到正确捕获cookies的方法,我可能会回到托管类 我的PHP脚本在捕获Cookie方面非常出色,因

我最近开始在我的一个项目中使用libcurl.net,作为
HttpWebRequest
HttpWebResponse
类的替代品。我选择使用libcurl.net而不是托管类的原因是libcurl.net模仿了PHP中cURL的行为,并且我在移植PHP中的一些代码。我试图使用内置的托管类,但是
CookieContainer
类没有从我试图从中捕获Cookie的网站正确捕获所有Cookie。如果我能找到正确捕获cookies的方法,我可能会回到托管类

我的PHP脚本在捕获Cookie方面非常出色,因此我使用libcurl.net将大部分cURL功能移植到了我的C#项目中。我遇到的问题是,当我必须使用
CURLOPT_HTTPHEADER
cURL选项发送多个请求头时,我必须使用Slist数据类型传入多个头,如下所示:

Slist headers = new Slist();
headers.Append("Content-Type: application/x-www-form-urlencoded");
headers.Append("X-Requested-With: XMLHttpRequest");
easy.SetOpt(CURLoption.CURLOPT_HTTPHEADER, headers);

我有时不得不伪造一个AJAX请求,但它似乎没有通过请求的
X-request-With:XMLHttpRequest
头,因为我正在抓取的网站不会返回这些“伪造”AJAX请求的任何结果。如果我设置了
CURLOPT\u HTTPHEADER
我是否需要设置
内容类型
头,或者总是默认为
内容类型:application/x-www-form-urlencoded

结果表明我正确添加了多个头。我只是创建了一个
Slist
对象,并使用
CURLOPT_HTTPHEADER
选项将我的头添加到请求中。通过这种方式,可以“伪造”AJAX请求或web浏览器发送的任何其他类型的请求。问题是我没有随请求发送正确的POST数据