我正在實現一個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