Just spent probably 2 hours on trying to figure this out.. Super-simple POST to a rest api, along those lines:
public static string SendToWebService(string url, CommunicationMessageBase message)
{
if (string.IsNullOrEmpty(url))
throw new ArgumentException("Empty url");
if (message == null)
throw new ArgumentException("Message is null.");
using (WebClient client = new WebClient())
{
client.Headers.Add("Content-Type", "application/json");
return client.UploadString(url, "POST", message.ToJSON());
}
}
This is a correct code, which was failing, returning server 500 error. Basically, I was passing an object of a class, inhrerited from CommunicationMessageBase.. And I forgot to define parameterless constructor on the child class! D-uh!