C# 用HttpClient替换cURL

C# 用HttpClient替换cURL,c#,dotnet-httpclient,C#,Dotnet Httpclient,我看到了,但它没有回答我的问题。我们的供应商向我提供了下面的cURL命令,其中包含一些可选参数,以及使用CRON作业运行它的说明。似乎通过HttpClient发送我的C代码生成的CSV要比将CSV放到某个地方并通过CRON作业业务发送更有效。我正在编写的C将是我们已经提供的自动化服务的一部分 这是卷曲: curl -F "passkey=<PASS KEY>" -F "uploadFile=@<PATH_TO_YOUR_CSV_FILE>" https://td-setu

我看到了,但它没有回答我的问题。我们的供应商向我提供了下面的cURL命令,其中包含一些可选参数,以及使用CRON作业运行它的说明。似乎通过HttpClient发送我的C代码生成的CSV要比将CSV放到某个地方并通过CRON作业业务发送更有效。我正在编写的C将是我们已经提供的自动化服务的一部分

这是卷曲:

curl -F "passkey=<PASS KEY>" -F "uploadFile=@<PATH_TO_YOUR_CSV_FILE>" https://td-setup.xxxxxx.com/<DOMAIN NAME>/csvupload
我通常喜欢在请求她的帮助之前表现出更多的努力,但我已经不知所措了。我如何开始?添加密钥?loadAll参数?

curl-F选项表示根据使用多部分/表单数据内容类型的POST数据

因此,您需要创建一个对象:

将您的密码字符串附加到它:

// passkey is the param name from the curl script
formDataContent.Add(new HttpStringContent("yourpasswordhere"), "passkey");
将您的CSV文件内容附加到该文件:

byte[] csvBytes = File.ReadAllBytes("yourcsvfile.csv");
var csvContent = new ByteArrayContent(csvBytes);

// uploadFile is the param name specified in the curl script
formDataContent.Add(csvContent, "uploadFile", "filename.csv");
您没有解释如何在curl中使用loadAll参数,但让我们假设它是一个'true'/'false'字符串参数:

formDataContent.Add(new HttpStringContent("true"), "loadAll");
最后,发布表格:

string url = "https://td-setup.xxxxxx.com/<DOMAIN NAME>/csvupload";
var client = new HttpClient();
await client.PostAsync(url, formDataContent);
curl-F选项表示使用multipart/form数据内容类型的POST数据

因此,您需要创建一个对象:

将您的密码字符串附加到它:

// passkey is the param name from the curl script
formDataContent.Add(new HttpStringContent("yourpasswordhere"), "passkey");
将您的CSV文件内容附加到该文件:

byte[] csvBytes = File.ReadAllBytes("yourcsvfile.csv");
var csvContent = new ByteArrayContent(csvBytes);

// uploadFile is the param name specified in the curl script
formDataContent.Add(csvContent, "uploadFile", "filename.csv");
您没有解释如何在curl中使用loadAll参数,但让我们假设它是一个'true'/'false'字符串参数:

formDataContent.Add(new HttpStringContent("true"), "loadAll");
最后,发布表格:

string url = "https://td-setup.xxxxxx.com/<DOMAIN NAME>/csvupload";
var client = new HttpClient();
await client.PostAsync(url, formDataContent);