【发布时间】:2012-04-14 10:53:09
【问题描述】:
我正在实现一个 android 应用程序,我想在其中使用来自服务器的一些方法(我没有实现)。现在,当我尝试制作一个必须仅传递字符串参数的 http-post 时,一切都可以使用如下代码正常工作:
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("user[email]", email));
nameValuePairs.add(new BasicNameValuePair("user[password]", password));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
ResponseHandler<String> responseHandler=new BasicResponseHandler();
String responseBody = httpclient.execute(httppost, responseHandler);
JSONObject response=new JSONObject(responseBody);
System.out.println("RESPONSE " + response.toString());
我得到一个 json 对象的响应,我可以很容易地使用它来获取我想要的属性。
现在有些方法需要非字符串值(整数或布尔值)作为参数。我不能在List<NameValuePair> 之类的列表中传递这些参数,因为这只需要字符串。我也尝试将它作为 json 对象传递,但没有成功。
所以我的第一个问题是http post中是否可以有非字符串参数?如果是,应该怎么做?例如,如果在上面的代码中电子邮件是一个整数,密码是一个布尔值(在示例中),我应该如何处理它们?
提前谢谢大家!
【问题讨论】:
-
只是传递他们的字符串表示?
-
你的意思是“1”代表1?但是服务器等待我认为的整数。所以我得到一个 IO 异常,我认为是因为这个.. 是不是有一些方法可以传递非 String 或 http-post 不允许它?
-
是否有一个功能正常的网页可以发布到您尝试使用的服务器资源?如果是这样,您是否可以使用类似 Firefox 的 HttpFox 插件或其他流量嗅探器来查看成功的 HTTP 请求的外观并模仿其格式?
-
不,这是一些人为我应该制作客户端的项目制作的服务器。我是第一个使用它的人。我可能会要求他们将所有内容都作为字符串接收并从他们这边工作(从字符串解析整数等),但我想了解我是否错了,这可以通过 http-post 和非字符串参数来完成。
标签: android json parameters arguments http-post