Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Here is an example of how a third-party application can use C# to make a WCF RESTful POST request:

using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;

namespace YourApplicationNamespace
{
    public class YourApplicationClass 
    {
        public async Task<string> PostData()
        {
            try 
            {
                var client = new HttpClient();
                client.BaseAddress = new Uri("http://example.com/");
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                var data = new { name = "John Doe", email = "johndoe@example.com" };
                var content = new StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json"); 

                var response = await client.PostAsync("api/your-endpoint", content);

                if (response.IsSuccessStatusCode)
                {
                    var result = await response.Content.ReadAsStringAsync();
                    return result;
                }

                return string.Empty;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return string.Empty;
            }
        }
    }
}

This code uses the HttpClient class to create and send a POST request to a RESTful WCF service. It sets the request headers to accept JSON data and serializes the request payload to JSON before sending it. The response is then read and returned as a string.

Note that you will need to replace the base address http://example.com/ and the endpoint api/your-endpoint with the actual values for your WCF service. You will also need to add the Newtonsoft.Json NuGet package to your project to use the JsonConvert class for serializing the request payload.