Android: всегда получаю GET на сервере, даже если отправлено POST - PullRequest
0 голосов
/ 23 сентября 2011

Я пытаюсь отправить данные, используя метод POST из моих приложений для Android.Однако на сервере это всегда распознается как GET.Я использую приложения Rails в качестве веб-службы.Вот фрагмент моего кода Android:

URI uri = new URI(hostName);

HttpPost httpRequest = new HttpPost(uri);

 httpRequest.addHeader("Accept", "application/json");

 httpRequest.addHeader("Content-Type", "application/json");

 List<NameValuePair> pairs = new ArrayList<NameValuePair>();

 pairs.add(new BasicNameValuePair("key1", "value1"));

 httpRequest.setEntity(new UrlEncodedFormEntity(pairs));

HttpClient httpClient = new DefaultHttpClient();

HttpResponse httpResponse = httpClient.execute(httpRequest);

Я сделал что-то не так?Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 07 июня 2014

Вас перенаправили? Я подозреваю, что если вы попытаетесь отправить POST в домен A, который перенаправит вас в домен B, ваш запрос будет преобразован в запрос GET. У меня была такая же проблема, пока я не решил использовать IP-адрес сервера в запросе POST напрямую, а не использовать алфавитное имя, которое перенаправляет на IP-адрес.

0 голосов
/ 24 октября 2011

Ваш код Android выглядит нормально, убедитесь, что ваш журнал не показывает код перенаправления 301 для POST, несмотря на отображение кода 200 для GET.Странно, это может иметь место в зависимости от конфигурации вашего хоста.Например, вы можете увидеть что-то вроде этого:

123.156.189.123 - - [21/Oct/2011:09:03:34 -0700] "POST /server_script.php HTTP/1.1" 301 532 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1"
123.156.189.123 - - [21/Oct/2011:09:03:34 -0700] "GET /server_script.php HTTP/1.1" 200 250 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1"

Здесь GET не был перенаправлен (код 200), но POST был (код 301).Если это происходит, вам необходимо переопределить параметры перенаправления с помощью .htaccess или других параметров конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...