首页 > 解决方案 > 如何在标头中使用 cookie 进行 POST 请求,例如 cURL 请求

问题描述

我正在尝试实现一个简单的HttpClient请求,比如这个 cURL 请求。

我有这个运行正常的 CURL:

curl "http://url.com" -H "Cookie: token=hbfoiuoi..." --data "idTienda=9734&fechaDesde=22%2F03%2F2019&fechaHasta=22%2F03%2F2019 --compressed

响应返回一个 Excel 文档:

<data contentType="application/vnd.ms-excel" contentLength="3753">UEsDBBQACAAIAM+...

但是HttpClient请求没有运行。它不返回任何东西:

var uri = new Uri("http://url.com");
var client = new HttpClient(new HttpClientHandler { UseCookies=false});

client.BaseAddress = uri;
client.DefaultRequestHeaders.Add("Cookie", "token=hbfoiuoi...");

var parameters = new Dictionary<string, string>();
parameters.Add("id", "9734");
parameters.Add("fechaD", "22/03/2019");
parameters.Add("fechaH", "22/03/2019");
var content = new FormUrlEncodedContent(parameters);

var responsetotalSalesStore= await client.PostAsync(uri, content);
byte[] bytes = await responsetotalSalesStore.Content.ReadAsByteArrayAsync();
File.WriteAllBytes("file.xls", bytes);

回应是:

{
   "success": false,
   "message": "null",
   "result": null,
   "limitReached": false
}

标签: c#.netcurlrequesthttpclient

解决方案


推荐阅读