新手求助,Android实现向服务器发送数据的问题
可使用android自带的httpclient框架实现。
1 GET 方式传递参数
//先将参数放入List,再对参数进行URL编码
List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>();
paramsadd(new BasicNameValuePair("param1", "数据")); //增加参数1
paramsadd(new BasicNameValuePair("param2", "value2"));//增加参数2
String param = URLEncodedUtilsformat(params, "UTF-8");//对参数编码
String baseUrl = "服务器接口完整URL";
HttpGet getMethod = new HttpGet(baseUrl + "" + param);//将URL与参数拼接
HttpClient httpClient = new DefaultHttpClient();
try {
HttpResponse response = httpClientexecute(getMethod); //发起GET请求
Logi(TAG, "resCode = " + responsegetStatusLine()getStatusCode()); //获取响应码
Logi(TAG, "result = " + EntityUtilstoString(responsegetEntity(), "utf-8"));//获取服务器响应内容
} catch (ClientProtocolException e) {
eprintStackTrace();
} catch (IOException e) {
eprintStackTrace();
}
2 POST方式 方式传递参数
//和GET方式一样,先将参数放入List
params = new LinkedList<BasicNameValuePair>();
paramsadd(new BasicNameValuePair("param1", "Post方法"));//增加参数1
paramsadd(new BasicNameValuePair("param2", "第二个参数"));//增加参数2
try {
HttpPost postMethod = new HttpPost(baseUrl);//创建一个post请求
postMethodsetEntity(new UrlEncodedFormEntity(params, "utf-8")); //将参数填入POST Entity中
HttpResponse response = httpClientexecute(postMethod); //执行POST方法
Logi(TAG, "resCode = " + responsegetStatusLine()getStatusCode()); //获取响应码
Logi(TAG, "result = " + EntityUtilstoString(responsegetEntity(), "utf-8")); //获取响应内容
} catch (UnsupportedEncodingException e) {
eprintStackTrace();
} catch (ClientProtocolException e) {
eprintStackTrace();
} catch (IOException e) {
eprintStackTrace();
}
1、打开应用时向服务器发申请
2、如果应用一直打开,或者有后台服务,可以定时向服务器发申请
Google本身就有一个推送demo可以用,Google Cloud Message,你可以参考一下,不过国内用Google推送不太稳定,但是我测试的时候基本上都能推送成功。详细的搭建你可以参考我的微博,有什么问题你再问吧
安卓推送服务, 实现方案有以下方式:
轮询:客户端定期询问服务器有没有新的消息, 这样服务器不用管客户端的地址是什么, 客户端来问, 直接告诉它就行
这种方案最简单, 对于一些不追求实时性的客户端来说, 很适合, 只需要把时间间隔设定成几个小时取一次, 就能很方便的解决问题
SMS通知:这种方案在移动端是有可能的, 让客户端拦截手机短信, 服务器在有新消息时给用户的手机号发一条特殊的短信, 客户端拦截短信后发现是正常短信就放行, 如果是特殊短信就连接服务器取消息。
消息推送,可以到极光了解一下 ,极光推送(JPush)是独立的第三方云推送平台,致力于为全球移动应用开发者提供移动消息推送服务。2016年6月,国内一站式开发者服务平台极光推送发表公开声明,宣布品牌正式全面升级为大数据综合服务商“极光”。
0条评论