Модифицированный метод POST не работает с сервером nginx - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь отправить свой json на сервер с помощью метода пост-модификации.

если мой сервер использовал сервер apache, он работает, но в случае сервера nginx он не работает.

Япытаясь объяснить с помощью фиктивного API.что я делаю?

URL:

    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 отправлено в stderr: «PHP сообщение: PHP Предупреждение: отсутствует граница в multipart / form-данные POST в Unknown в строке 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_\ x22: \ x22469 \ x22 \ x22credit \ x22: \ x22200 \ x22 \ x22distance \ x22: \ x221000 \ x22 \ x22duration \ x22: \ x221 \ x22 \ x22type \ x22: \ x220 \ x22} ""- "" - "" - "" - "{\ x22access_token \ x22: \ x22476be4412cef4a3490c2fa2cef5b4cfa \ x22, \ x22competitor_id \ x22: \ x22469 \ x22, \ x22credit \ x22: \ x22200 \ x22, \ 2222: сопротивлениеx22 \ x22duration \ x22: \ x221 \x22, \ x22type \ x22: \ x220 \ x22}

Я использовал границу, но она не работает ..

Как решить мою проблему .. Пожалуйста, предложите мне ..

Выпуск: https://github.com/square/retrofit/issues/2802

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Вы передаете данные неверным способом. Измените этот способ . Отображается ваше сообщение об ошибке, вам нужно передать данные в несколько частей, и вы передаете в JSON

0 голосов
/ 25 июня 2018

создайте один класс pojo для отправки данных в формате json.вы можете генерировать класс pojo на основе robopojo pulgins или ссылаться на этот сайт http://www.jsonschema2pojo.org/

после даты, чтобы определить этот метод для вызова API.

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

, а также ответ сервера pojo класс

...