Android-приложение отправляет данные в сценарий PHP - Ожидание не удалось v2.0 - PullRequest
0 голосов
/ 25 декабря 2010

Привет всем и счастливого Рождества!

Я недавно задал вопрос о StackOverflow: Приложение Android отправляет данные в сценарий PHP - Ожидание не удалось

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

Во-первых, я нашел кого-то, кто получает ту же ошибку на этом сайте: http://www.anddev.org/novice-tutorials-f8/doing-http-post-with-the-current-sdk-t5911-15.html

---------------------------- Цитата ------------------------------------------------

Привет, ребята!Мне нужна небольшая помощь. Я протестировал каждый код на этом форуме и других веб-сайтах, очистил их или использовал как написано, но я всегда возвращаю одну и ту же ошибку: 417 Ожидание не выполнено.от 404, 500 и тд .. Кто-то с большим опытом разбирается ??Спасибо вам большое!Если кто-то найдет ответ, я буду усердно работать над этим форумом с открытым кодом !!

Скорее всего, причина того, что ваш код не работает, заключается в том, что вы не понимаете, как создать HTTP-запрос,Код в порядке, ваши заголовки и контент, вероятно, нет!

Используя анализатор сетевых протоколов (например, Wireshark), или встроенные средства разработки FireBug или Chrome, прочитайте POST-запросы, которые вы делаете к веб-сайтам, а затем восстановитеих (используя те же заголовки) в Android.

---------------------------- UNQuote -----------------------------------------------

Я пытался использовать wireshark, и в результате я не использую

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();  
     nameValuePairs.add(new BasicNameValuePair("Name", "Noon"));  
     nameValuePairs.add(new BasicNameValuePair("Level", "0"));  
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

отправленное сообщение httpPost

, но когда я использую nameValuePairs,HttpPost не отправляется.

Я действительно потерян с этой ошибкой.

Заранее спасибо.

1 Ответ

1 голос
/ 18 февраля 2011

Ваша проблема - не проблема POST, это проблема HttpClient-сервера ... и вы можете решить ее, используя простую настройку. Далее следует краткое объяснение того, что происходит, но вы можете найти более подробную информацию в CoreProtocolPNames.USE_EXPECT_CONTINUE в документации Android.

Перед отправкой содержимого вашей сущности через (например, пары имя-значение) HttpClient запрашивает у сервера ответ «100-continue» (рукопожатие «Expect: 100-continue»). Если серверу не удается сделать это, его ответ возвращается как 417, и объект не отправляется. Вы можете остановить рукопожатие, используя следующие строки при инициализации HttpClient:

mHttpClient = new DefaultHttpClient(); params = HttpClient.getParams(); params.setParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE,false);

Этот параметр должен помешать вашему коду запрашивать квитирование, и объект должен быть отправлен немедленно.

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