2016-05-31 3 views
2

У меня очень странная проблема. Почтовый запрос не доходит до сервера. У меня есть HttpInterceptorLoggerАндроид Дополн. Почтовый запрос не достигает сервера

, поэтому я вижу журналы (см. Ниже). Другие почтовые запросы работают правильно, но они не отправили json:

Также проверен этот запрос через браузер, и он работал нормально. Не знаю, где может быть проблема. Пожалуйста, помогите исправить это.

У меня есть запрос:

@POST(LEAD_SET) 
Observable<ResponsePojo<LeadsPostPackage>> setFullLead(@Body RequestPojo<LeadsPostPackage> leadsRequestPojoRequestPojo) 

И это ответ:

05-31 11:50:06.682 20489-20489/com.amocrm.prototype D/OkHttp: --> POST https://andmhxsq.amocrm.com/private/api/v2/json/leads/set http/1.1 
05-31 11:50:06.682 20489-20489/com.amocrm.prototype D/OkHttp: Content-Type: application/json; charset=UTF-8 
05-31 11:50:06.682 20489-20489/com.amocrm.prototype D/OkHttp: Content-Length: 164 
05-31 11:50:06.682 20489-20489/com.amocrm.prototype D/OkHttp: Cookie: BITRIX_SM_LOGIN=amodeveloper%40yandex.ru; expires=Wed, 05-May-2021 08:50:01 GMT; path=/; domain=.amocrm.com;BITRIX_SM_SALE_UID=0; expires=Fri, 26-May-2017 08:50:01 GMT; path=/; domain=.amocrm.com;session_id=h44nqh6np985fj5dhe9jqs1ensnh4ga0gdf6sbr10o76kv53nb81; path=/; domain=.amocrm.com;user_lang=en; expires=Mon, 31-May-2021 08:50:01 GMT; path=/; domain=.amocrm.com; 
05-31 11:50:06.682 20489-20489/com.amocrm.prototype D/OkHttp: {"request":{"leads":{"update":[{"id":"40604699","last_modified":"1464684606","name":"Lead with many custom field","pipeline_id":"171910","status_id":"10753387"}]}}} 
05-31 11:50:06.683 20489-20489/com.amocrm.prototype D/OkHttp: --> END POST (164-byte body) 

ответ

0

Пожалуйста, проверьте, если ваш сервер поддерживает HTTP протокол 2. Если это не так, это может быть проблемой, поскольку по умолчанию Retrofit2 использует последний доступный протокол. Служба Retrofit обычно инициализируется с помощью OkHttpClient, по умолчанию поддерживаемые протоколы: HTTP 1.1, SPDY 3.1 и HTTP2. Самый последний из них является HTTP 2.

Если вы хотите установить HTTP 1.1, чтобы поддерживать, вы должны установить его в явном виде:

OkHttpClient okHttpClient = new OkHttpClient(); 
okHttpClient.setProtocols(Arrays.asList(Protocol.HTTP_1_1); 

Не забудьте добавить только Protocol.HTTP_1_1.

+0

Хорошая попытка, но первая строка OPs в журнале противоречит ей: '-> POST https://andmhxsq.amocrm.com/private/api/v2/json/leads/set http/1.1'. Клиент не отправил бы это, если бы использовал HTTP2 – grochmal

+0

True. Не заметил этого. – mlarinskiy

Смежные вопросы