Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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
C# 使用HttpClient对xml内容进行Post调用_C#_Xml_Httpclient - Fatal编程技术网

C# 使用HttpClient对xml内容进行Post调用

C# 使用HttpClient对xml内容进行Post调用,c#,xml,httpclient,C#,Xml,Httpclient,如何使xml内容与内容的HttpClientPostAsync操作兼容,以及在哪里为content Type=application/xml指定标题 错误->无法将字符串转换为HttpContent public async Task GetCustomersAsync(string firstname, string lastname) { using (var client = new HttpClient()) { var conte

如何使xml内容与内容的
HttpClient
PostAsync
操作兼容,以及在哪里为
content Type=application/xml
指定
标题

错误->无法将字符串转换为
HttpContent

public async Task GetCustomersAsync(string firstname, string lastname)
{
        using (var client = new HttpClient())
        {
            var content = "<soapenv:Envelope xmlns:xsi...";

            var response = await client.PostAsync("https://domain.com/scripts/WebObj.exe/Client.woa/2/ws/ABC", content);

            var responseString = await response.Content.ReadAsStringAsync();
        }
    }
public异步任务getCustomerAsync(string firstname,string lastname)
{
使用(var client=new HttpClient())
{

var content=“我猜您要做的是:

public async Task<string> GetCustomersAsync(string firstname, string lastname)
{
    using (var client = new HttpClient())
    {
        var content = new StringContent("<soapenv:Envelope xmlns:xsi...", Encoding.UTF8, "application/xml");;

        var response = await client.PostAsync("https://example.com/scripts/WebObj.exe/Client.woa/2/ws/ABC", content);

        return await response.Content.ReadAsStringAsync();
    }
}
public异步任务getCustomerAsync(string firstname,string lastname)
{
使用(var client=new HttpClient())
{

var content=new StringContent(“要在响应中具体请求xml内容,必须在内容的标题中定义内容类型。MediaTypeHeaderValue在内容标题的ContentType属性中进行解析和设置。下面是完整的代码示例

using (var client = new HttpClient())
{
    var content = new StringContent(messageToPOST, Encoding.UTF8, "text/xml");
    content.Headers.ContentType = MediaTypeHeaderValue.Parse("text/xml");
    response = await client.PostAsync(_uri, content);
    responseMsg = await response.Content.ReadAsStringAsync();
}
请求作为响应返回的responseMsg属性可以解析为字符串,或者使用以下表达式转换为xml并验证为xml

XDocument xdoc = XDocument.Parse(responseMsg);
string xmlAsString = xdoc.ToString();

谢谢,您是如何指定标题的,例如在本文档中指定
content-type
case@user2727195我已经更新了我的答案。该标题是针对contenttype的,具体来说,在第一个示例中,构造函数的最后一个参数设置为contenttype标题。但是,如果您要查找不同的标题,则在req上完成uest对象本身request.Headers.Add(“HEADER\u KEY”、“HEADER\u VALUE”)我明白了,httpclient读取内容、编码及其内容类型,并相应地设置头,对吗?\Correct(至少据我所知)。是否可以添加一行来调用此方法并从此方法外部输出结果字符串,例如
foo.getCustomerAsync(“,”)。继续使用…
,我是新手
XDocument xdoc = XDocument.Parse(responseMsg);
string xmlAsString = xdoc.ToString();