一、准备一个java端的程序
如:http://192.168.43.37:8080/T212_easyui/jsp/userAction.action?methodName=userList
这里用的是动态的IP地址,不能用localhost,动态地址会改变,可以先确认IP地址。以确保在手机和电脑都可以用。
二、通过httpclient调用java端。
1.简介httpclient
httpclient 是 Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和协议。 HtppClient来提交请求、接收响应。在API 23中,Google已经移除了移除了Apache HttpClient相关的类 ,在Android中要在build.gradle中的android {}中加上useLibrary 'org.apache.http.legacy',写好之后要同步 Sync show.
2.使用httpclient
2.1创建httpclient对象 HttpClient httpClient = new DefaultHttpClient();
2.2创建get或post对象
HttpGet HttpGet = new HttpGet("http://www.baidu.com");
HttpPost httpPost = new HttpPost("http://www.baidu.com"
2.3添加参数,有三种方式,可选一种
第一: setParams(HttpParams params)//HttpGet和HttpPost共有
第二:setEntity(HttpEntity entity)//HttpPost独有
第三种:?传参
2.4发送个或post请求,做出响应。
三、将java串转成对象
ObjectMapper om = new ObjectMapper();
try {
Map map = om.readValue(json, Map.class);
Log.i("server:",map.get("total").toString());
Log.i("server:",map.get("rows").getClass().getName());
} catch (IOException e) {
e.printStackTrace();
}
注意:
1. 如果地址错误,或服务器未开户,HttpClient这SB会等待N久(>24小时)。 所以请记得设置超时时间,所以请记得设置超时时间,所以请记得设置超时时间
2.需要添加允许网络访问权限,不然会报错“java.lang.SecurityException: Permission denied (missing INTERNET permission?)”
<uses-permission android:name="android.permission.INTERNET" /> 。在manifests 下,找到 AndroidManifest.xml 文件写入<uses-permission android:name="android.permission.INTERNET" />即可。
3.HttpUriRequest为HttpGet和HttpPost的父类
4. 检查ip地址:
启动的android模拟器吧自己也当成127.0.0.1和localhost,如果使用了localhost或者127.0.0.1则会被拒绝访问