永发信息网

android怎么传map对象到服务器

答案:2  悬赏:80  手机版
解决时间 2021-02-07 10:38
android怎么传map对象到服务器
最佳答案
Android应用开发中,会经常要提交数据到服务器和从服务器得到数据,本文主要是给出了利用http协议采用HttpClient方式向服务器提交数据的方法。
代码比较简单,这里不去过多的阐述,直接看代码。


public class SubmitDataByHttpClientAndOrdinaryWay {
**
* 使用get请求以普通方式提交数据
*
* @param map
* 传递进来的数据,以map的形式进行了封装
* @param path
* 要求服务器servlet的地址
* @return 返回的boolean类型的参数
* @throws Exception
*/
public Boolean submitDataByDoGet(Map map, String path)
throws Exception {
// 拼凑出请求地址
StringBuilder sb = new StringBuilder(path);
sb.append("?");
for (Map.Entry entry : map.entrySet()) {
sb.append(entry.getKey()).append("=").append(entry.getValue());
sb.append("&");
}
sb.deleteCharAt(sb.length() - 1);
String str = sb.toString();
System.out.println(str);
URL Url = new URL(str);
HttpURLConnection HttpConn = (HttpURLConnection) Url.openConnection();
HttpConn.setRequestMethod("GET");
HttpConn.setReadTimeout(5000);
// GET方式的请求不用设置什么DoOutPut()之类的吗?
if (HttpConn.getResponseCode() == HttpURLConnection.HTTP_OK) {
return true;
}
return false;
}


public Boolean submitDataByDoPost(Map map, String path) throws Exception {

// 注意Post地址中是不带参数的,所以newURL的时候要注意不能加上后面的参数
URL Url = new URL(path);
// Post方式提交的时候参数和URL是分开提交的,参数形式是这样子的:name=y&age=6
StringBuilder sb = new StringBuilder();
// sb.append("?");
for (Map.Entry entry : map.entrySet()) {
sb.append(entry.getKey()).append("=").append(entry.getValue());
sb.append("&");
}
sb.deleteCharAt(sb.length() - 1);
String str = sb.toString();[/font][/size]
HttpURLConnection HttpConn = (HttpURLConnection) Url.openConnection();
HttpConn.setRequestMethod("POST");
HttpConn.setReadTimeout(5000);
HttpConn.setDoOutput(true);
HttpConn.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
HttpConn.setRequestProperty("Content-Length",
String.valueOf(str.getBytes().length));
OutputStream os = HttpConn.getOutputStream();
os.write(str.getBytes());
if (HttpConn.getResponseCode() == HttpURLConnection.HTTP_OK) {
return true;
}
return false;
}


public Boolean submitDataByHttpClientDoGet(Map map,
String path) throws Exception {
HttpClient hc = new DefaultHttpClient();
// 请求路径
StringBuilder sb = new StringBuilder(path);
sb.append("?");
for (Map.Entry entry : map.entrySet()) {
sb.append(entry.getKey()).append("=").append(entry.getValue());
sb.append("&");
}
sb.deleteCharAt(sb.length() - 1);
String str = sb.toString();
System.out.println(str);
HttpGet request = new HttpGet(sb.toString());[/font][/size]
HttpResponse response = hc.execute(request);
if (response.getStatusLine().getStatusCode() == HttpURLConnection.HTTP_OK) {
return true;
}
return false;
}

复制代码


public Boolean submintDataByHttpClientDoPost(Map map, String path) throws Exception {

// 1. 获得一个相当于浏览器对象HttpClient,使用这个接口的实现类来创建对象,DefaultHttpClient
HttpClient hc = new DefaultHttpClient();
// DoPost方式请求的时候设置请求,关键是路径
HttpPost request = new HttpPost(path);
// 2. 为请求设置请求参数,也即是将要上传到web服务器上的参数
List parameters = new ArrayList();
for (Map.Entry entry : map.entrySet()) {
NameValuePair nameValuePairs = new BasicNameValuePair(
entry.getKey(), entry.getValue());
parameters.add(nameValuePairs);
}

// 请求实体HttpEntity也是一个接口,我们用它的实现类UrlEncodedFormEntity来创建对象,注意后面一个String类型的参数是用来指定编码的
HttpEntity entity = new UrlEncodedFormEntity(parameters, "UTF-8");
request.setEntity(entity);
// 3. 执行请求
HttpResponse response = hc.execute(request);
// 4. 通过返回码来判断请求成功与否
if (response.getStatusLine().getStatusCode() == HttpURLConnection.HTTP_OK) {
return true;
}
return false;
}
}
全部回答
转化为 json 字符串 ,然后直接去json
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中油碧辟(南桥加油站)地址在哪,我要去那里办
北京能自考工商企业管理专业本科的学校有哪些
加德士(兴中道城桂路店)地址在什么地方,想过
如图,直线AB、CD相交于点O,OE⊥CD,且∠BOE=1/
我抓了一只鸽子脚环是CHN605422是真的假的是
永威加油站地址在什么地方,想过去办事
进了别人家灵堂,自己家过几天还要搬家怎么做
沈阳的朋友,请问沈阳有正规的能给宠物火化的
某安全技术服务机构现有专职安全评价师20名,
中国石化(青岗加油站)地址在什么地方,我要处
佳宜超市这个地址在什么地方,我要处理点事
角瓜切块太大炒不熟了怎么办?
联安加油站地址在什么地方,我要处理点事
一台质量为5000千克的履带式拖拉机对地面的压
请问柳州火车站可以提前几天买票?谢谢!
推荐资讯
四川省一共有21个市州,这次大地震有19个市州
中国邮政储蓄银行东平县支行营业部怎么去啊,
谁知道从郑州城隍庙到郑大老校区的公交路线?
玩天龙八部.一般需要什么要的配置不卡.
绅士龙专业美发怎么去啊,我要去那办事
畔冲村地址在什么地方,想过去办事
耐压玻璃,但尾巴一碰就碎
诛仙里陆雪琪对张小凡貌似说过类似“无论别人
诺基亚N97手机上的名片如何用蓝牙一次性全部
【鸟的天堂课文图片】鸟的天堂课文原文
用塑料饭盒在微波炉加热可以盖盖子不
吉利远景质量如何
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?