Android Retrofit发布请求无法到达服务器

时间:2016-05-31 09:22:32

标签: android json post response retrofit

我有一个非常奇怪的问题。发布请求无法到达服务器。我有 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)

1 个答案:

答案 0 :(得分:0)

请检查您的服务器是否支持HTTP 2协议。如果它没有,那么这可能是一个问题,因为Retrofit2默认使用最新的可用协议。改造服务通常使用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