2014-10-01 4 views
2

У меня возникла проблема при отправке сообщения через клиент Джерси по API Mandrill. Я использую Джерси клиента следующим образом:Ошибка API Mandrill для отправки запроса

ClientBuilder.newClient() 
        .register(JacksonJsonProvider.class) 
        .target(“https://mandrillapp.com/api/1.0/messages/send.json”) 
        .request(MediaType.APPLICATION_JSON_TYPE) 
        .post(Entity.json(methodEntity)); 

Ниже вы можете увидеть вошли заголовки, метод и содержание запроса API.

POST https://mandrillapp.com/api/1.0/messages/send.json 
Accept: application/json 
Content-Type: application/json 
{"message":{"subject":"Hello World!","text":"Really, Im just saying hi from Mandrill!","to":[{"email":"[email protected]","name":"Marcel cccc","type":"to"}],"headers":{},"tags":["test"],"from_email":"[email protected]","auto_text":true,"preserve_recipients":false},"async":false,"key":"EWIBVEIOVBVOIEBWIOVEB"} 

В ответ на эту просьбу я все время получаю следующее сообщение:

[{"email":"[email protected]","status":"rejected","_id":"0ea5e40fc2f3413ba85b765acdc5f17a","reject_reason":"invalid-sender"}] 

Я не знаю, что этот вопрос может быть, от некоторых постов я понял, я должен использовать UTF-8 для кодирования моего сообщения и заголовки. Но установка кодировки в UTF-8 не принесла много пользы. В противном случае полезная нагрузка мне кажется прекрасной, и, кроме того, я нашел на форумах, что недопустимый отправитель может означать любую другую проблему (а не только недействительный отправитель, который печален).

ответ

3

У меня была точно такая же проблема с

"reject_reason": "недействительные-отправитель"

Вы, наверное, проверить уже подобный вопрос Mandrill “reject_reason”: “invalid-sender”

Попробуйте его, если это помогает. Я понимаю, что у вас также отсутствует параметр заголовка в вашем запросе

например. User-Agent: Mandrill-myclient/1,0

Пожалуйста, попробуйте добавить этот параметр в вашей установки клиента Джерси следующим образом:

 ClientBuilder.newClient() 
       .register(JacksonJsonProvider.class) 
       .target(“https://mandrillapp.com/api/1.0/messages/send.json”) 
       .request(MediaType.APPLICATION_JSON_TYPE) 
       .header("User-Agent", "Mandrill-myclient/1.0") 
       .post(Entity.json(methodEntity)); 

Помогает ли это?

+0

Спасибо! что действительно помогло, я бы не ожидал, что проблема может быть связана с заголовком User-agent –