Search code examples
c#.netxmlpost

How to Post XML data in C# with XmlElementAttribute Class


I have some XML data like this to post on httpPost:

<logindetail>
<player account="IDR" country="IN" firstName="" lastName="" userName=""
nickName="" tester="1" partnerId="LION8" commonWallet="0"></player>
<partners>
<partner partnerId="" partnerType="0" />
<partner partnerId="" partnerType="1" />
<partner partnerId="" partnerType="1" />
</partners>
</logindetail>

and my code for post the request is like this in C#:

string reqBody = xmlData;

var result = HttpPost(ApiUrl, xmlData, "text/xml");

How can I set the XML data as reqBody for post it on httpPost?


Solution

  • Simle code for Http Post request using HttpClient:

    using System;
    using System.Net.Http;
    
        async Task<string> HttpPostAsync(string url, string data , string mediaType)
            {
                using (var httpClient = new HttpClient())
                {
                    var request = new HttpRequestMessage();
    
                    request.Method = HttpMethod.Post;
                    request.RequestUri = new Uri(url);
    
                    request.Content = new StringContent(data, Encoding.UTF8, mediaType);
                    var responseMessage = await httpClient.SendAsync(request);
    
                    return await responseMessage.Content.ReadAsStringAsync();
                }
    
            }
    

    Examle of using:

    var xmlData = @"<logindetail>
    <player account=""IDR"" country=""IN"" firstName="""" lastName="""" userName=""""
    nickName="""" tester=""1"" partnerId=""LION8"" commonWallet=""0""></player>
    <partners>
    <partner partnerId="""" partnerType=""0"" />
    <partner partnerId="""" partnerType=""1"" />
    <partner partnerId="""" partnerType=""1"" />
    </partners>
    </logindetail>";
    
    var response = await HttpPostAsync("https://httpbin.org/post", xmlData, "Text/xml");