Выполнение исходящих звонков Twilio с использованием клиента Jersey REST - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь совершать исходящие звонки, используя Twilio в моем веб-приложении Java Spring MVC. Я передал необходимые значения авторизации и данные формы, необходимые для совершения исходящего вызова, но получил ошибку HTTP 400. Теперь, когда я пытаюсь POST использовать REST-клиент Postman, я могу сделать исходящий вызов, используя Twilio. Но то же самое не работает, когда я использую свою программу, чтобы инициировать вызов. Пост, который я использую, выглядит следующим образом:

 ClientConfig config = new DefaultClientConfig();
                  Client client = Client.create(config);
                  client.addFilter(new HTTPBasicAuthFilter(ACCOUNT_SID, AUTH_TOKEN));
                  WebResource webResource = client.resource("https://api.twilio.com/2010-04-01/Accounts/ACfeea72833464fc8711f48a0fd/Calls.json");
                  ClientResponse responseMsg = webResource
                          .queryParam("From", from)
                            .queryParam("To", to)
                            .queryParam("Url", fileUrl)
                            .queryParam("Method", "GET")
                            .queryParam("StatusCallback", "https://www.myapp.com/events")
                            .queryParam("StatusCallbackMethod", "POST")
                            .post(ClientResponse.class);

Я получаю HTTP-статус 400 в своем ответе. То же самое работает, когда я пытаюсь использовать REST-клиент почтальона. Как я могу решить проблему?

Почтальон показан ниже:

Authorization username and password

Body

Как я могу сделать тот же POST, используя клиент REST Джерси?

1 Ответ

0 голосов
/ 14 июня 2019

Я заметил, что вы используете старую версию библиотек Джерси 1.1x. Именно так я и реализовал это, используя клиент Jersey 1.19. Вместо использования queryParams я создаю MultivaluedMap с нужными данными формы.

ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
client.addFilter(new HTTPBasicAuthFilter(ACCOUNT_SID, AUTH_TOKEN));

WebResource webResource = client.resource("https://api.twilio.com/2010-04-01/Accounts/ACxxxxxxxxxxx/Calls.json");

MultivaluedMap<String, String> formData = new MultivaluedMapImpl();
formData.add("From", "+xxxxxxxxxx");
formData.add("To", "+xxxxxxxxxx");
formData.add("Body", "This is a test");

ClientResponse responseMsg = webResource.type(MediaType.APPLICATION_FORM_URLENCODED).post(ClientResponse.class, formData);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...