Это довольно просто. Исходя из того, что я прочитал, это должно работать. У меня есть и более сложная версия этого.
Параметр To, указанный ниже, представляет собой список строк. From и Body - это строки.
Http http = new Http();
HttpRequest request = new HttpRequest();
request.setEndpoint('https://api.testdomain.com/batchemail');
request.setHeader('Authorization', 'Bearer ' + token);
request.setMethod('POST');
request.setHeader('Accept', '*/*');
request.setHeader('Content-Type', 'application/json;charset=UTF-8');
// Set the body as a JSON object
request.setBody('{"To": ["to@email.com"]}');
request.setBody('{"From": "from@email.com"}');
request.setBody('{"Body": "Test message"}');
HttpResponse response = http.send(request);
Вот пример JSON, который принимает API.
{
"to": ["to@email.com"],
"from": "from@email.com",
"body": "Test message"
}
Конечная точка была добавлена в настройках удаленного сайта.
Есть идеи, почему это не работает? Буду признателен за любую оказанную помощь. Спасибо!
ОБНОВЛЕНИЕ 1 (это работает)
request.setBody('{"To": ["to@email.com"], "From": "from@email.com", "Body": "Test message." }');
ОБНОВЛЕНИЕ 2 (это тоже работает)
JSONGenerator gen = JSON.createGenerator(true);
// Write data to the JSON string.
gen.writeStartObject();
gen.writeObjectField('to', emailList);
gen.writeStringField('from', 'from@email.com');
gen.writeStringField('body', message);
gen.writeEndObject();
// Get the JSON string.
String pretty = gen.getAsString();
request.setBody(pretty);
Обновление 3 (это также работает)
Решение Гарета Джордана также работает.