Http协议网络请求java方式

原创 2015年11月19日 19:21:51

HTTP(超文本传输协议)消息:客户端请求,服务器响应


主要请求方式:
GET:数据附在url后面,数据量小,安全性差。

POST:数据量大,支持各种数据类型,安全性高,服务器先接受数据长度再接收内容。


主要用到的以下类:

URL url = new URL("httpurl");//得到url实例,,URL是特殊的URI 统一资源定位符,URI 资源标识符

HttpConnection con = url.openConnectoin();//通过httpurl 得到HttpConnection 实例

con.setRequestMethod("");//设置请求状态,GET/POST/HEAD/PUT/DELETE/TRACE/CONNECT/OPTIONS

con.connect();//建立连接

con.getResponseCode;//返回得到响应状态,int值

通过con.get...可以得到输入输出流,能够像服务器传送数据并得到响应信息;

con.disconnect; 断开连接


使用:

网络请求是耗时操作,所以不能放在主线程中,可以使用handler或者异步任务

<span style="font-size:14px;">new AsyncTask<String, Void, String>() {
				@Override
				protected String doInBackground(String... params) {
					return buildHttpConnect(params[0]);//封装的方法
				}

				/*得到响应数据的处理,赋给textView */
				@Override
				protected void onPostExecute(String result) {
					mShowTxt.setText(result);

				};
			}.execute(httpUrl);</span>

通过传入目标url建立连接

	private String buildHttpConnect(String url) {
		try {
			/* get请求传参方式url=url +"?user=admin&psw=123"  get处理中文乱码,可以调用URLEncoder.encode("params","UTF-8")*/
			URL httpUrl = new URL(url);
			HttpURLConnection connection = (HttpURLConnection) httpUrl
					.openConnection();
			connection.setRequestMethod("POST");
			connection.setReadTimeout(10000);
			connection.setConnectTimeout(5000);
			connection.connect();
			
			/* post请求 传参方式)(post参数中文乱码,在服务器req.setContentType("text/html;charset=UTF-8");) */
			OutputStream os = connection.getOutputStream();
			PrintWriter writer = new PrintWriter(os);
			writer.print("user=admin&psw=123");
			writer.flush();

			/* 读取服务器响应内容 */
			InputStream is = connection.getInputStream();
			BufferedReader reader = new BufferedReader(new InputStreamReader(
					is, "UTF-8"));

			StringBuilder builder = new StringBuilder();
			String str;
			while ((str = reader.readLine()) != null) {
				builder.append(str);
			}

			return builder.toString();

		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally{//"关流",断开连接<span style="font-family: Arial, Helvetica, sans-serif;">}</span>
<span style="font-size:14px;">		return null;
	}</span>

客户端中文乱码:

get请求中可以使用URLEncoder这个工具类,URLEncoder.encode("","UTF-8");

post请求中,可以在服务器那端设置 request.setContentType("text/html;charset=UTF-8");

响应乱码;

1.在new InputStreamReader(inputstream,"UTF-8")中可以指定他的编码

2.在服务端中设置 response.setCharset("UTF-8");

版权声明:本文为博主原创文章,未经博主允许不得转载。

http协议:http请求、http响应、间隔时间跳转页面、禁用浏览器缓存

http协议 1. http协议是建立在  tcp/ip协议基础上. 2. 我们的web开发数据的传输都是依赖于http协议. 3. http协议全称是 超文本传输协议 http协议的-htt...

Spring HttpInvoke实现,以及效率提升!

最近接手服务器总被人质疑效率问题,说到底是质疑Spring HttpInvoke的效率问题。好在经过同事们的努力,找到了问题的根源,最终解决了这个问题。  我也顺道整理一下Spring HttpIn...

网络请求_Http协议详解

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第...

安卓网络请求http协议

请求返回码2XX 成功 - 200 OK,表示从客户端发来的请求在服务器端被正确处理 - 204 No content,表示请求成功,但响应报文不含实体的主体部分 - 206 Partia...

网络请求,HTTP协议 ,GET,POST

QQ 微信  陌陌等 用socket 俗称 套接字\ 优势:

网络请求前,你所应该知道的HTTP协议!

HTTP简介 1.http协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本...

IOS开发—网络请求(HTTP协议)介绍

介绍ios开发中最长用到的HTTP网络请求协议以及GET请求、POST请求、同步请求、异步请求。...
  • Lotheve
  • Lotheve
  • 2015年03月19日 09:09
  • 930

android基础学习之http协议网络请求基本实例

转载地址:http://blog.csdn.net/liuhe688/article/details/6425225 在Android中,除了使用java.net包下的API访问HTTP服务之外,我们...

Http与Android网络请求的几种协议

HTTP深入浅出 http请求 HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如We...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Http协议网络请求java方式
举报原因:
原因补充:

(最多只允许输入30个字)