在c#中发送原始XML到Tableau Rest API的正确方法

本文关键字:API Rest 方法 Tableau XML 原始 | 更新日期: 2023-09-27 18:14:50

我只是想发送一个rest请求到Tableau的rest API,但由于某种原因。net没有发送原始XML(尽管经过测试,它在chrome中使用Postman)

var admin = "'hardcoded_admin_user"'"";
var pass = "'hardcoded_pass"'"";
var tableau_signin = String.Format("<tsRequest> <credentials name={0} password={1}> </credentials> <site contentUrl='"'"/> </tsRequest>", admin, pass);
    //if user is validated make a REST call to Tableau Server
    string endPoint = @"http://server/api/2.0/auth/signin";
    HttpClient client = new HttpClient();
    client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/xml"));
    var post = client.PostAsync(endPoint,
           new StringContent(tableau_signin)).Result;
    }

在c#中发送原始XML到Tableau Rest API的正确方法

在StringContent中提供编码和内容类型。

var post = client.PostAsync(endPoint,
           new StringContent(tableau_signin, Encoding.UTF8, "application/xml")).Result;
var user = FormatTextBodyForUserSignIn(userName, password);
var httpContent = new StringContent(user, Encoding.UTF8, "application/xml");
var response = client.PostAsync($"api/{TableauAPIVersion}/auth/signin", httpContent).Result;