"Android下使用HttpUrlConntion"进行最简单的get,post请求(包括创建服务器)
2016-07-10 00:48
1161 查看
一服务端 MyEclipse创建服务器
创建Servlet
编写doGet和doPost方法
部署工程
验证服务器
浏览器验证
二客户端Android
验证网络
get请求
post请求
添加网络权限
我们把过程分成两大块(服务端和客户端),服务端用Myeclipse创建一个Web项目服务,客户端用安卓进行访问,好了现在就开始进行
2.写工程名
3.右击工程名,创建Servlet
4.设置好名称,然后记住只选择doGet和doPost方法,点击Next
5.设置访问路径注意只要斜杠+我们方便的字即可
(PS:注意,这个路径是你以前重来没有用过的路径,如果有用过,那么等下部署后运行就会有警告,访问也会404错误),点击finish完成
工程添加到tomcat
添加后就会显示出来了
点击开始
然后再进行get请求 路径加上问号+名字+&+密码验证,就会出现登陆成功
所以服务器就配置好了
(PS:我们只需要获取网络返回来的数据即可);
验证能访问tomcat
验证能访问路径
代码:
代码:
输出结果
正常访问;
创建Servlet
编写doGet和doPost方法
部署工程
验证服务器
浏览器验证
二客户端Android
验证网络
get请求
post请求
添加网络权限
我们把过程分成两大块(服务端和客户端),服务端用Myeclipse创建一个Web项目服务,客户端用安卓进行访问,好了现在就开始进行
一.服务端: MyEclipse创建服务器
创建Servlet
1.创建Web工程(第三个)2.写工程名
3.右击工程名,创建Servlet
4.设置好名称,然后记住只选择doGet和doPost方法,点击Next
5.设置访问路径注意只要斜杠+我们方便的字即可
(PS:注意,这个路径是你以前重来没有用过的路径,如果有用过,那么等下部署后运行就会有警告,访问也会404错误),点击finish完成
编写doGet和doPost方法
部署工程
工程添加到tomcat
添加后就会显示出来了
点击开始
验证服务器
浏览器验证
打开浏览器,输入地址8080和你的工程名如果能出现JSP页面就证明没有错然后再进行get请求 路径加上问号+名字+&+密码验证,就会出现登陆成功
所以服务器就配置好了
二.客户端:Android
(网络请求耗时操作,都在子线程执行,如果想谈吐司就RunOnUI主线程)(PS:我们只需要获取网络返回来的数据即可);
验证网络
首先先打开我们的桌面浏览器看看我们的模拟器是不是被拒绝了,如果你们访问不了tomcat主界面,10.0.2.2:8080或者127.0.0.1的话,就上网查询解决方法(搜索:genymotion无法访问10.0.2.2,然后教程就会告诉你设置里面的ip代理即可)验证能访问tomcat
验证能访问路径
get请求
要点:1.直接拼接路径访问 2.Url获取连接,设置时间和请求方法get 3.获取读取流转成字符串并输出
代码:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /*--------------get--------------*/ huc_get(); /*--------------post--------------*/ huc_post(); } /** * 子线程中耗时操作 * 直接拼接提交数据到路径即可 */ private void huc_get() { new Thread(new Runnable() { @Override public void run() { try { String name = "admin"; String pwd = "10086"; //1.url和获取到连接对象 //不用localhost,用10.0.2.2或者127.0.0.1 URL url = new URL("http://10.0.0.2:8080/LoginTest/login?name=" + name + "&pwd=" + pwd); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); //两个时间,连接和读取时间 conn.setConnectTimeout(3000); conn.setReadTimeout(3000); // conn.setRequestMethod("GET"); conn.connect(); InputStream is = conn.getInputStream(); String s = readStringFromIs(is); System.out.println(s); } catch (IOException e) { e.printStackTrace(); } } }).start(); }
post请求
要点:1.路径不再是拼接形式 2.路径变成到服务的路径 3.后面的name和pwd采用流的形式 4.通过获取输出流输出
代码:
public static String Stream2String(InputStream is) throws IOException { String res = ""; //"字节流"变成"字符转化流",再通过"缓冲读取字符"即可获取 BufferedReader reader = new BufferedReader(new InputStreamReader(is)); String line; try { //每次读一行,就累加,然后继续下一行,直到最后. line = reader.readLine(); while (line != null){ res += line; line = reader.readLine(); } } catch (IOException e) { e.printStackTrace(); } return res; } /** * post不能直接拼接,采用参数形式 * post里路径里问号也不要 */ private void huc_post() { new Thread(new Runnable() { @Override public void run() { try { URL url = new URL("http://10.0.0.2:8080/LoginTest/login"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(3000); conn.setReadTimeout(3000); //方法是get conn.setRequestMethod("POST"); //提交数据写出 OutputStream os = conn.getOutputStream(); String data = "name=admin" + "&pwd=10086"; os.write(data.getBytes()); //获取输出读取 InputStream is = conn.getInputStream(); String s = readStringFromIs(is); System.out.println(s); } catch (IOException e) { e.printStackTrace(); } } }).start(); }
添加网络权限
<uses-permission android:name="android.permission.INTERNET"/>
输出结果
07-09 12:47:03.296 4792-4806/? I/System.out: login success 07-09 12:47:03.296 4792-4807/? I/System.out: login success
正常访问;
相关文章推荐
- 小心服务器内存居高不下的元凶--WebAPI服务
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件