Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 使用XML从VS2019中的控制台应用程序调用简单POST API_Asp.net_Visual Studio_Http_Web Services_Post - Fatal编程技术网

Asp.net 使用XML从VS2019中的控制台应用程序调用简单POST API

Asp.net 使用XML从VS2019中的控制台应用程序调用简单POST API,asp.net,visual-studio,http,web-services,post,Asp.net,Visual Studio,Http,Web Services,Post,我已转介有关人士。但是,需要在post中传递XML方法,而不是JSON。有什么建议吗 static async Task Main(string[] args) { var TicketTask = await createTicket(); } async static Task<string> createTicket() { var content = "unknown error";

我已转介有关人士。但是,需要在post中传递XML方法,而不是JSON。有什么建议吗

 static async Task Main(string[] args)
    {
        var TicketTask = await createTicket();
    }

    async static Task<string> createTicket()
    {
        var content = "unknown error";
        using (var httpClient = new System.Net.Http.HttpClient())
        {
            using (var request = new System.Net.Http.HttpRequestMessage(new HttpMethod("POST"), "http://1.0.01.1/slive/"))
            {
                try
                {
                    var base64authorization = Convert.ToBase64String(Encoding.ASCII.GetBytes("username:password"));
                    request.Headers.TryAddWithoutValidation("Authorization", $"Basic {base64authorization}");

                  
                    request.Content =  new StringContent("<soapenv:Envelope xmlns:xsi...", Encoding.UTF8, "application/xml"); ????? need to post a xml method here 
                    request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("text/xml");
                    ServicePointManager.Expect100Continue = true;
                    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                    HttpResponseMessage response = await httpClient.SendAsync(request).ConfigureAwait(false);
                    content = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
                    Console.WriteLine(response);
                }
                catch (Exception ex)
                {
                    content = ex.Message;
                }
            }
        }
        return content;
static async Task Main(字符串[]args)
{
var TicketTask=wait createTicket();
}
异步静态任务createTicket()
{
var content=“未知错误”;
使用(var httpClient=new System.Net.Http.httpClient())
{
使用(var request=new System.Net.Http.HttpRequestMessage(new-HttpMethod(“POST”),”http://1.0.01.1/slive/"))
{
尝试
{
var base64authorization=Convert.ToBase64String(Encoding.ASCII.GetBytes(“用户名:密码”);
request.Headers.TryAddWithoutValidation(“Authorization”,$“Basic{base64authorization}”);

request.Content=new StringContent(找到了解决方案,如果有更好的方法,请纠正我:

async static Task<string> createTicket2()
{
    var content = "unknown error";
    using (var httpClient = new System.Net.Http.HttpClient())
    {
        using (var request = new System.Net.Http.HttpRequestMessage(new HttpMethod("POST"), "http://10/sap-lve/"))
        {
            try
            {
                var base64authorization = Convert.ToBase64String(Encoding.ASCII.GetBytes("an:s"));
                request.Headers.TryAddWithoutValidation("Authorization", $"Basic {base64authorization}");

                String str1 = @"<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'><s:Body><Get_api_version xmlns='http://e.s.a.com'/></s:Body></s:Envelope>";

                **request.Content = new StringContent(str1, Encoding.UTF8, "text/xml");** ;
                request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("text/xml");
                ServicePointManager.Expect100Continue = true;
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                HttpResponseMessage response = await httpClient.SendAsync(request).ConfigureAwait(false);
                content = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
                //Console.WriteLine(response);
                var result = response.Content.ReadAsStringAsync();
                Console.WriteLine(result.Result);

            }
            catch (Exception ex)
            {
                content = ex.Message;
            }
        }
    }
    return content;
}
异步静态任务createTicket2() { var content=“未知错误”; 使用(var httpClient=new System.Net.Http.httpClient()) { 使用(var request=new System.Net.Http.HttpRequestMessage(new-HttpMethod(“POST”),”http://10/sap-lve/")) { 尝试 { var base64authorization=Convert.ToBase64String(Encoding.ASCII.GetBytes(“an:s”); request.Headers.TryAddWithoutValidation(“Authorization”,$“Basic{base64authorization}”); 字符串str1=@”; **request.Content=newstringcontent(str1,Encoding.UTF8,“text/xml”);**; request.Content.Headers.ContentType=MediaTypeHeaderValue.Parse(“text/xml”); ServicePointManager.Expect100Continue=true; ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12; HttpResponseMessage response=await httpClient.SendAsync(请求).ConfigureAwait(错误); content=await response.content.ReadAsStringAsync().ConfigureAwait(false); //控制台写入线(响应); var result=response.Content.ReadAsStringAsync(); Console.WriteLine(result.result); } 捕获(例外情况除外) { 内容=例如消息; } } } 返回内容; }
如果你可以试着问一个更具体的问题,并提供更多关于你所尝试的内容的详细信息,而不是大量的代码。例如,你发布的代码不起作用了吗?你遇到了什么错误?你已经尝试了什么?最后,发布这么大的代码块是没有帮助的,因为大部分代码都不起作用与您的问题完全相关。当然,在上面的示例(SOAP调用)中,正文是以JSON格式发送的,而不是我们在Postman中使用的XML。我已经在ASP.NET Core中创建了一个控制台应用程序来复制Postman。需要关于如何在正文中传递XML而不是JSON的建议。谢谢