首页 > 解决方案 > 改造 POST 方法不适用于 nginx 服务器

问题描述

我正在尝试使用改造后的方法将我的 json 提交到服务器。

如果我的服务器使用 apache 服务器,它可以工作,但如果是 nginx 服务器,它就不能工作..

我正在尝试用虚拟 api 进行解释。我在做什么?

网址:

    https://mysite_url/3.6.2/create_dummy_data

有效载荷:

    {"access_token":"476be4412cef4a3490c2fa2cef5b4cfa","distance":"2000","credit":"200","duration":"10","competitor_id":"180"}

在这里,我正在处理这个:

    //@headers({"Content-Type: multipart/form-data"}) this is optional
    //@headers({"Content-Type: application/json"})    this is optional
    @post(URL)
    Observable<PayloadDummy> dummySubmitApi(@query("payload") String s);

服务器错误:

带有多部分标题:

[错误] 6419#6419: *26 FastCGI sent in stderr: "PHP message: PHP Warning: Missing boundary in multipart/form-data POST data in Unknown on line 0" 同时从上游读取响应标头

没有任何标题:

response_status_code 500 请求 "POST /3.6.2/create_dummy_data HTTP/1.1" 180.151.5.333 - - [25/Jun/2018:11:19:17 +0000] 17730 "-" "okhttp/3.10.0" "-" " {\x22access_token\x22:\x22476be4412cef4a3490c2fa2cef5b4cfa\x22,\x22competitor_id\x22:\x22469\x22,\x22credit\x22:\x22200\x22,\x22distance\x22:\x221000\222,\221\x22duration\x22:x ,\x22type\x22:\x220\x22}""-" "-" "-" "-" {\x22access_token\x22:\x22476be4412cef4a3490c2fa2cef5b4cfa\x22,\x22competitor_id\x22:\x22469\x22,\x22credit\x22: \x22200\x22,\x22distance\x22:\x221000\x22,\x22duration\x22:\x221\x22,\x22type\x22:\x220\x22}

我使用了边界,但它不起作用..

如何解决我的问题..请建议我..

问题:https ://github.com/square/retrofit/issues/2802

标签: androidnginxretrofit2rx-java2

解决方案


为您发送 json 数据创建一个 pojo 类。您可以基于 robopojo pulgins 生成 pojo 类或参考此站点http://www.jsonschema2pojo.org/

在日期之后定义此方法用于 api 调用..

    @POST("url")
Call<ResponseData> getData(@Body User user);

以及服务器响应 pojo 类


推荐阅读