您的位置:首页 > 理论基础 > 计算机网络

关于HttpURLConnection需要注意的几点

2014-11-13 11:40 330 查看
1.两种方式发送请求 get post

get方式 参数放在url后面

String url1=url+"?"+params;

URL realurl=new URL(url1);

HttpURLConnection conn=(HttpURLConnection) realurl.openConnection();

conn.setRequestProperty("connection", "keep-alive");//必须在connect方法之前调用。

conn.setRequestProperty.......

conn.connect();

post方式 参数则需要获取outputStream

URL realUrl = new URL(url);

URLConnection conn = realUrl.openConnection();

// 设置通用的请求属性

conn.setRequestProperty("accept", "*/*");

conn.setRequestProperty("connection", "Keep-Alive");

conn.setRequestProperty("user-agent",

"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");

conn.setDoOutput(true);//这一行必须要写,因为要将参数放在outputStream中输出

out = new PrintWriter(conn.getOutputStream());

// 发送请求参数

out.print(params); //写入缓存

out.flush();//将缓存中的刷入流中 ,必须写

//此处getOutputStream会隐含的进行connect(即:如同调用上面的connect()方法,


// 所以在开发中不调用上述的connect()也可以)

HttpURLConnection的connect()函数,实际上只是建立了一个与服务器的tcp连接,并没有实际发送http请求。

无论是post还是get,http请求实际上直到HttpURLConnection的getInputStream()这个函数里面才正式发送出去


// 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在


// http正文内,因此需要设为true, 默认情况下是false;


httpUrlConnection.setDoOutput(true);




// 设置是否从httpUrlConnection读入,默认情况下是true;


httpUrlConnection.setDoInput(true); 所以可不显示调用

有参考下面的文章
http://www.blogjava.net/supercrsky/articles/247449.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: