我正在实现一个Android应用程序,我想在服务器中使用某些方法(这不是由我实现的)。现在,当我试图让一个HTTP-POST,我必须通过唯一字符串参数一切正常用类似代码:Android - 是否有可能使用非String参数创建一个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中有非String参数?如果是的话,该怎么办?例如,如果在上面的代码中,电子邮件是一个整数并且密码是布尔值(例如摇动),我应该如何处理它们?
谢谢大家提前!
只需传递它们的字符串表示形式? – 2012-03-30 18:15:04
你的意思是“1”代表1?但服务器等待我想的整数。所以我得到一个IO异常,我认为是因为这..不是有一些方法来传递非String或http-post不允许它吗? – george 2012-03-30 18:20:13
是否有正常运行的网页发布到您尝试使用的服务器资源?如果是这样,你可以使用类似Firefox的HttpFox插件或其他流量嗅探器来查看成功的HTTP请求是什么样子并模仿它的格式? – 2012-03-30 19:00:42