java或者android通过http获取服务端数据
2016-03-27 15:56
513 查看
现在的开发一般都分为客户端和服务端开发,主要是服务端提供统一的接口,在客户端不同的情况下,服务端照样维持相同的接口,省去了许多开发成本。但对于客户端和服务端的连接就显得比较重要,现在通讯一般有两种方式,一种是http请求,另一种是socket通信。这篇文章主要说明http请求,看到许多人写了文章,我觉得讲的都差不多,但是主要是服务端代码没有给我们,造成很多的不理解。
先看一个例子:服务端代码,文件名test.php,主要测试post和get参数传递
客户端代码,这里主要通过post传递参数(现在开发很少使用get,但如果想学,可以查一下,比post更简单),一般也有两种类可以实现HttpURLConnection和HttpClient,但现在官方不推荐使用HttpClient这个类,所以这里我们采用HttpURLConnection:
发现输出:post传参成功。
这个只是简单的例子,更加复杂的功能需要我们自行去研究。
对于这个代码中的”contentType”,可以去百度,这个表示你那个服务端的文件类型。希望文章能对你们有所帮助。(主要还是为了给我自己看)
先看一个例子:服务端代码,文件名test.php,主要测试post和get参数传递
<?php if($_GET["name"]=="wo") echo "我们是可以的"; if($_POST['username']=="zcl") echo "post传参成功"; ?>
客户端代码,这里主要通过post传递参数(现在开发很少使用get,但如果想学,可以查一下,比post更简单),一般也有两种类可以实现HttpURLConnection和HttpClient,但现在官方不推荐使用HttpClient这个类,所以这里我们采用HttpURLConnection:
public static void main(String args[]) { HttpURLConnection conn = null; try { URL url = new URL("http://192.168.246.129/test.php"); // 1.得到HttpURLConnection实例化对象 conn = (HttpURLConnection) url.openConnection(); // 2.设置请求方式 conn.setRequestMethod("POST"); conn.setDoOutput(true); conn.setDoInput(true); // Post 请求不能使用缓存 conn.setUseCaches(false); conn.setInstanceFollowRedirects(true); conn.setRequestProperty("contentType", "text/html"); conn.connect(); DataOutputStream out = new DataOutputStream(conn.getOutputStream()); String content ="username="+URLEncoder.encode("zcl", "utf-8"); out.writeBytes(content); out.flush(); out.close(); BufferedReader reader =new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8")); //设置编码,否则中文乱码 String line = ""; System.out.println(reader); while ((line = reader.readLine()) != null) { System.out.println(line); } reader.close(); conn.disconnect(); } catch (Exception e) { e.printStackTrace(); } finally { // 6.释放资源 if (conn != null) { // 关闭连接 即设置 http.keepAlive = false; conn.disconnect(); } } } }
发现输出:post传参成功。
这个只是简单的例子,更加复杂的功能需要我们自行去研究。
对于这个代码中的”contentType”,可以去百度,这个表示你那个服务端的文件类型。希望文章能对你们有所帮助。(主要还是为了给我自己看)
相关文章推荐
- Ubuntu 网络设置
- 仅有 0.09% 的 HTTPS 站点使用了 HPKP 证书钉
- [ZJOI2012]网络 解题报告
- Volley框架源码分析
- 淘宝的SEM如何操作及“车神”的由来太原网络营销师揭秘
- layoutSubviews何时调用的问题(原文:http://www.cnblogs.com/pengyingh/articles/2417211.html)
- 2014年 无线网络发射器
- Linux网络配置之二ip、ss、网络相关配置文件
- 网络请求
- TCP/IP初探
- 常见的网络请求错误代码含义
- TCP/IP初探
- 安卓学习----使用okHttp(get方式)---下载图片
- javaweb基础--HTTP协议
- BZOJ1834 [ZJOI2010]network 网络扩容(最小费用最大流)
- java 网络编程
- HTTP协议
- 网络属性
- PHP网络编程
- TCP三次握手四次挥手blog.csdn.net/whuslei