我正在制作一个应用程序,应该点击按钮,如
-- REQUEST HEADERS --
User-Agent: XYZ
Host: root.url
Content-Type: application/json; charset=utf-8
Content-Length: 123
...
-- REQUEST BODY --
{
"Apikey": "abcdefgh-ijkl-mnop-qrst-uvwxyz12345",
"Imei": "0123456789012354"
"Gps": {
"Latitude": 1.23,
"Longitude": 4.56
},
// Request specifics go here
}
如何使用http post方法传递此数据
答案 0 :(得分:1)
嗨检查这个答案:
https://stackoverflow.com/a/10410693/1168654
http://localtone.blogspot.in/2009/07/post-json-using-android-and-httpclient.html
创建如下所示的数组,并将其传递给HttpPost
方法。
ArrayList<NameValuePair> nameValuePairs1 = new ArrayList<NameValuePair>();
nameValuePairs1.add(new BasicNameValuePair("user_id", ""));
nameValuePairs1.add(new BasicNameValuePair("product_id", ""));
nameValuePairs1.add(new BasicNameValuePair("product_review",""+text));
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(URL);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs1));
HttpResponse responce = httpclient.execute(httppost);
HttpEntity entity = responce.getEntity();
is = entity.getContent();
BufferedReader bufr = new BufferedReader(new InputStreamReader(is1,"iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
sb.append(bufr.readLine() + "\n");
String line = "0";
while ((line = bufr.readLine()) != null)
{
sb.append(line + "\n");
}
is1.close();
result = sb.toString();
该数组传递了url并给你结果。
答案 1 :(得分:0)
由于您的Web服务在请求中需要JSONObject,您可以使用 setEntity()
在 HTTPPost 中创建并简单地设置它。
例如:
JSONObject objRequest = new JSONObject();
objRequest.put("Apikey","abcdefgh-ijkl-mnop-qrst-uvwxyz12345");
objRequest.put("Imei","0123456789012354");
JSONObject objGps = new JSONObject();
objGps.put("Latitude",1.23);
objGps.put("Longitude",4.56);
objRequest.put(Gps, objGps);
现在,这是一种使用请求数据调用webservice的方法:
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost= new HttpPost(url);
post.addHeader("Content-Type", "application/json; charset=utf-8"); // addHeader()
httpPost.setEntity(new StringEntity(objRequest.toString(),"utf-8")); // request data
HttpResponse response = httpclient.execute(httpPost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection "+e.toString());
}