web端的项目怎么向Android端服务器发送请求?
可使用Android自带的httpClient实现Android与java web之间的数据的交互。
具体实现代码:
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();
}
不能与数据库连接的
Android客户端不能直接与服务器数据库连接。数据库是需要非常大的内存,安装之后有好几G,连接数据库要有一个像SQLServer里的webservice,这样的一个桥梁来间接访问。就是在服务器运行一个服务端程序,该服务端程序通过接收来自android客户端的指令,对数据库进行操作。
客户端的http请求可以通过 HttpClient类实现,在anddroid 40之后,客户端的网络请求已经不被允许在主线程中运行,所以还需注意另开启一个子线程进行网络请求。
扩展资料:
Android安全权限机制:
Android默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作。这其中包括读写用户隐私数据(联系人或电子邮件),读写其他应用文件,访问网络或阻止设备待机等。安装应用时,在检查程序签名提及的权限,且经过用户确认后,软件包安装器会给予应用权限。
下载一款Android应用通常会要求如下的权限:拨打电话、发送短信或彩信、修改/删除SD卡上的内容、读取联系人的信息、读取日程信的息,写入日程数据、读取电话状态或识别码、精确的(基于GPS)地理位置、模糊的(基于网络获取)地理位置、创建蓝牙连接、
还有对互联网的完全访问、查看网络状态,查看WiFi状态、避免手机待机、修改系统全局设置、读取同步设定、开机自启动、重启其他应用、终止运行中的应用、设定偏好应用、震动控制、拍摄等。
——Android
Android应用的服务器端是可以用C#写的:
1、C#是微软公司发布的一种面向对象的、运行于NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 NET windows网络框架的主角。
2、C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为NET开发的首选语言。
3、C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT NET平台的应用程序,MICROSOFT NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
4、C#使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。
1、网络问题:由于网络连接不稳定或信号不好等原因,会导致小苹果影视无法正常连接服务器,从而无法显示首页内容。
2、服务器维护:如小苹果影视服务器正在进行维护或升级,会导致接口无法正常访问,进而影响首页的显示。
3、版本过旧:如使用的是小苹果影视的旧版本,因为接口更新等原因导致首页无法正常显示。
安卓系统的软件更新检测是通过访问Google Play Store服务器上的API接口实现的。当你打开Google Play Store应用时,应用会自动检测是否有新版本的应用程序可供更新。如果有可用的更新,Google Play Store会从服务器上获取最新版本的应用程序并下载安装。
Google Play Store服务器的地址是多个,这些地址可以根据地理位置和网络情况自动选择。如果需要对访问的地址进行监控或者限制,可以考虑使用代理服务器或网络过滤软件来实现。但需要注意的是,Google Play Store的访问地址可能随时发生变化,因此需要定期更新相关的网络规则。
服务器和app之间通过接口来访问,主要有2点作用。
1、app客户端太大,不利于复用。
如果没有接口,app客户端是可以直接请求数据的,这个是可以做到,但是相当于接口的全部工作在app端写了,这样会造成app端比较大。比如,访问数据库的代码,Android要写,iOS也要写,太不利于复用。高质量代码的标准是可维护、可复用、可扩展、灵活性高。所以,如果有了接口,接口就可以对数据进行封装和业务处理,然后给app端。
2、不利于数据库安全。
接口可以把关安全性。因为客户端在客户手里,可以破解,可以反编译,整个架构下,
整个客户端都是V,数据库直接暴漏出来,别人可以扫描你的数据库端口,很危险。所以一般数据库,外部是不给访问的,你只能通过接口,而接口,会要求你登
录,登录后,根据你的身份。分配身份标记,再决定你能请求多少东西,每次请求都是由接口判断一次是否合法,就是根据SessionString,也可以是
cookie。其实cookie就是SessionString的ID。即使被破解,拿到一个,也是一个用户的数据被盗,其他用户不受影响。
后台给出url为http://xxxxxxxx/webserver/iovserverphp/
接口文档如下
接口名称:getNewData
接口说明: 获取最新的终端数据
连接方式:GET
参数:phoneid(车载终端的SIM卡号)(必须)
返回值1:result:1表示成功,0表示失败 2data:终端数据的数组
服务器返回和接受的数据都是json格式
请问android客户端如何通过这个固定的url 访问这个getnewdata接口,如何把这个接口名称以及参数封装到请求中去
采用httpclient get方式, 如何访问成功则 返回data json对象并解析,最好有源码!!
0条评论