2013-03-20 3 views
1

Im новое в разработке android, и теперь мне нужно создать и использовать запрос POST. В соответствии с этим post я пытался поставить мои данные:Создание правильных HTTP POST-данных

  List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(13); 
      nameValuePairs.add(new BasicNameValuePair("SelectedCode", "25")); 
      nameValuePairs.add(new BasicNameValuePair("Phone", "1234567")); 
      nameValuePairs.add(new BasicNameValuePair("Text", "1234")); 
      nameValuePairs.add(new BasicNameValuePair("IsTranslit", "false")); 
      nameValuePairs.add(new BasicNameValuePair("IsShedule", "false")); 
      nameValuePairs.add(new BasicNameValuePair("LastDate", "")); 
      nameValuePairs.add(new BasicNameValuePair("LastDateHour", "00")); 
      nameValuePairs.add(new BasicNameValuePair("LastDateMinuts", "00")); 
      nameValuePairs.add(new BasicNameValuePair("DateSendBefore", "")); 
      nameValuePairs.add(new BasicNameValuePair("DateSendBeforeHour", "00")); 
      nameValuePairs.add(new BasicNameValuePair("DateSendBeforeMinuts", "00")); 
      nameValuePairs.add(new BasicNameValuePair("CaptchaDeText", "h3Vcjwk2moLagspo7lnKpg%3D%3D")); 
      nameValuePairs.add(new BasicNameValuePair("CaptchaInputText", "4myin2")); 
      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

но он не работает. Затем я попытался использовать этот код (извините за длинную линию)

  httppost.setEntity(new StringEntity("SelectedCode=25&Phone=1234567&Text=123&IsTranslit=false&IsShedule=false&LastDate=&LastDateHour=00&LastDateMinuts=00&DateSendBefore=&DateSendBeforeHour=00&DateSendBeforeMinuts=00&CaptchaDeText=h3Vcjwk2moLagspo7lnKpg%3D%3D&CaptchaInputText=4myin2")); 

И это работает. Может кто-нибудь объяснить, в чем разница или что я делаю неправильно?

ОБНОВЛЕНО:

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

+0

Не работает ошибка. Что происходит, что отправляется, что получает сервер? – CodeCaster

+2

Если я хорошо помню, 'UrlEncodedFormEntity' кодирует каждый параметр, но ваш параметр' h3Vcjwk2moLagspo7lnKpg% 3D% 3D' уже закодирован. Это может быть проблемой –

+0

хм, да, вы были правы – user1248568

ответ

1

villeionov's comment решил эту проблему. Изменение h3Vcjwk2moLagspo7lnKpg%3D%3D до h3Vcjwk2moLagspo7lnKpg== сделало трюк.

Смежные вопросы