创建正确的HTTP POST数据

时间:2013-03-20 17:40:52

标签: java android http post

我是Android开发的新手,现在我需要创建和使用POST请求。据此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列表中添加不正确的值,就会发生这种情况。但是从我的名字和第一段代码的价值和第二段是相同的。这让我很奇怪。

1 个答案:

答案 0 :(得分:1)

vmirionov的comment解决了这个问题。将h3Vcjwk2moLagspo7lnKpg%3D%3D更改为h3Vcjwk2moLagspo7lnKpg==就可以了。