简体   繁体   English

如何将此 curl commant 转换为 c#?

[英]How do i convert this curl commant to c#?

I am struggeling to convert a curl command to functioning c# code.我正在努力将 curl 命令转换为有效的 c# 代码。

curl "https://MY_SERVER/api/3.4/sites/site-id/workbooks" -X POST -H "X-Tableau-Auth:credentials token" -H "Content-Type: multipart/mixed;" -F "request_payload=@publish-workbook.xml" -F "tableau_workbook=@MY_WORKBOOK.twbx"

Can anyone help?任何人都可以帮忙吗?

Using curl to C# convertor I've got this result:使用curl 到 C# 转换器我得到了这个结果:

using (var httpClient = new HttpClient())
{
   using (var request = new HttpRequestMessage(new HttpMethod("POST"), "https://my_server/api/3.4/sites/site-id/workbooks"))
   {
      request.Headers.TryAddWithoutValidation("X-Tableau-Auth", "credentials token");

      var multipartContent = new MultipartFormDataContent();
      multipartContent.Add(new ByteArrayContent(File.ReadAllBytes("publish-workbook.xml")), 
      "request_payload", Path.GetFileName("publish-workbook.xml"));
   
      multipartContent.Add(new ByteArrayContent(File.ReadAllBytes("MY_WORKBOOK.twbx")), 
      "tableau_workbook", Path.GetFileName("MY_WORKBOOK.twbx"));
   
      request.Content = multipartContent;

      var response = await httpClient.SendAsync(request);
   }
}

In "Path.GetFileName()" you should change the file path.在“Path.GetFileName()”中,您应该更改文件路径。

use some online converter or make custom one.使用一些在线转换器或定制一个。 its on you.它在你身上。

C# of your curl below: C# 您的 curl 如下:

using (var httpClient = new HttpClient())
{
 using (var request = new HttpRequestMessage(new HttpMethod("POST"), "https://my_server/api/3.4/sites/site-id/workbooks"))
{
    request.Headers.TryAddWithoutValidation("X-Tableau-Auth", "credentials token"); 
    var multipartContent = new MultipartFormDataContent();
    multipartContent.Add(new ByteArrayContent(File.ReadAllBytes("publish-workbook.xml")), "request_payload", Path.GetFileName("publish-workbook.xml"));
    multipartContent.Add(new ByteArrayContent(File.ReadAllBytes("MY_WORKBOOK.twbx")), "tableau_workbook", Path.GetFileName("MY_WORKBOOK.twbx"));
    request.Content = multipartContent; 
    var response = await httpClient.SendAsync(request);
}
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM