Arhn - архитектура программирования

Журнал модификации для исходящего запроса POST не соответствует входящему пакету

Я пытаюсь отправить запрос POST на мой удаленный сервер Django через Retrofit. Я создал журнал для RestAdapter for Retrofit, но когда я отслеживаю журнал, я замечаю, что запрос отправляется правильно как POST:

---> HTTP POST http://[omitted IP]/users/login_user/?username=Lucas&platform=AND&client_version=1.0
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: 18

password=abcd12345
---> END HTTP (18-byte body)

но он получен на сервере (согласно tcpdump) как запрос GET.

Я могу отправить практически тот же запрос, используя curl:

curl -X POST -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" -d 'password=abcd12345' "http://[omitted IP]:22800/users/login_user/?username=Lucas&platform=AND&client_version=1.0"

и это приводит к тому, что сервер получает запрос POST, который он обрабатывает правильно.

Вот пакет POST от tcpdump через curl:

05:54:25.849761 IP [omitted IP].dsl.teksavvy.com.53549 > 192.168.0.150.22080: Flags [P.], seq 1:251, ack 1, win 229, options [nop,nop,TS val 9311380 ecr 191199659], length 250
 E...;[email protected]@a./.........f9.....
 .....ey.POST /users/login_user/?username=Lucas&platform=AND&client_version=1.0 HTTP/1.1
 User-Agent: curl/7.32.0
 Host: [omitted IP]:22800
 Accept: */*
 Content-Type: application/x-www-form-urlencoded; charset=UTF-8
 Content-Length: 18

 password=abcd12345

и то, что я думаю, должно быть почти таким же пакетом (но это не так) из tcpdump через Retrofit:

05:57:40.801738 IP [omitted IP].dsl.teksavvy.com.55429 > 192.168.0.150.22080: Flags [P.], seq 1:320, ack 1, win 229, options [nop,nop,TS val 45578792 ecr 191219119], length 319
[email protected]@.h...........i.....
..z(.e..GET /users/login_user/?username=Lucas&platform=AND&client_version=1.0 HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
User-Agent: Dalvik/1.6.0 (Linux; U; Android 4.2.1; Galaxy Nexus Build/JOP40D)
Host: [omitted IP]:22800
Connection: Keep-Alive
Accept-Encoding: gzip
Content-Length: 18

Где можно поменять пакет? Записываются ли пакеты в tcpdump после того, как они могут быть изменены прикладным уровнем? Или Retrofit лжет и на самом деле отправляет GET-запрос? Будем очень признательны за любые идеи о том, как отладить эту проблему.

16.04.2014

  • вы когда-нибудь находили решение проблемы? У меня аналогичная проблема с модификацией и добавлением .. 26.05.2014

Ответы:


1

Я решил проблему, изменив URL-адрес конечной точки с: endpoint-address.com на www.endpoint-address.com. Вот и все, редирект сервера с адреса без www, похоже, испортил POST-запросы.

26.05.2014
  • Это интересно. Прямо сейчас я просто использую IP-адрес, но мне интересно, сработает ли он, если я получу домен www и буду использовать его. 27.05.2014
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..