MailGun trying to post JSON object

38 Views Asked by At
public async Task Main()
{
    var serviceCo = new ServiceCollection();
    ConfigServices(serviceCo);
    var services = serviceCo.BuildServiceProvider();
    var httpClientFactory = services.GetRequiredService<IHttpClientFactory>();

    var client = httpClientFactory.CreateClient();
    var base64String = Convert.ToBase64String(Encoding.ASCII.GetBytes("api:MyApiKey"));
    client.DefaultRequestHeaders.Add("Authorization", "Basic " + base64String);
    var DomainId = "MyDomain";

    JArray json = JArray.Parse("[{'address': '[email protected]','createdat': ''},{'address': '[email protected]','createdat': ''}]");

    var postData = new StringContent(json.ToString(), Encoding.UTF8, "application/json");

    var request = await client.PostAsync("https://api.eu.mailgun.net/v3/" + DomainId + "/complaints", postData);

    var response = await request.Content.ReadAsStringAsync();

    Console.WriteLine(response);

}

I'm trying to post list of "complaints" to mailgun API. https://documentation.mailgun.com/docs/mailgun/api-reference/openapi-final/tag/Complaints/#tag/Complaints/operation/api.(*ComplaintController).InsertJSON-fm-36

I get a response back with:

"StatusCode: 400, ReasonPhrase: 'Bad Request'".

Also a message:

{"message":"Missing mandatory parameter: address"}\n.

I'm not sure exactly whats wrong. I'm guessing it's my JSON.

0

There are 0 best solutions below