首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

Http学习之应用HttpURLConnection发送post和get请求

2013-08-26 
Http学习之使用HttpURLConnection发送post和get请求最常用的Http请求无非是get和post,get请求可以获取静态

Http学习之使用HttpURLConnection发送post和get请求

最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。
在Java中可以使用HttpURLConnection发起这两种请求,了解此类,对于了解soap,和编写servlet的自动测试代码都有很大的帮助。
下面的代码简单描述了如何使用HttpURLConnection发起这两种请求,以及传递参数的方法:

Http学习之应用HttpURLConnection发送post和get请求public???class??HttpInvoker??{
Http学习之应用HttpURLConnection发送post和get请求
Http学习之应用HttpURLConnection发送post和get请求????public?static?final?String?GET_URL?=?"http://localhost:8080/welcome1";
Http学习之应用HttpURLConnection发送post和get请求
Http学习之应用HttpURLConnection发送post和get请求????public?static?final?String?POST_URL?=?"http://localhost:8080/welcome1";
Http学习之应用HttpURLConnection发送post和get请求
Http学习之应用HttpURLConnection发送post和get请求????public?static?void?readContentFromGet()?throws?IOException?{
Http学习之应用HttpURLConnection发送post和get请求????????//?拼凑get请求的URL字串,使用URLEncoder.encode对特殊和不可见字符进行编码
Http学习之应用HttpURLConnection发送post和get请求????????String?getURL?=?GET_URL?+?"?username="
Http学习之应用HttpURLConnection发送post和get请求????????????????+?URLEncoder.encode("fat?man",?"utf-8");
Http学习之应用HttpURLConnection发送post和get请求????????URL?getUrl?=?new?URL(getURL);
Http学习之应用HttpURLConnection发送post和get请求????????//?根据拼凑的URL,打开连接,URL.openConnection函数会根据URL的类型,
Http学习之应用HttpURLConnection发送post和get请求????????//?返回不同的URLConnection子类的对象,这里URL是一个http,因此实际返回的是HttpURLConnection
Http学习之应用HttpURLConnection发送post和get请求????????HttpURLConnection?connection?=?(HttpURLConnection)?getUrl
Http学习之应用HttpURLConnection发送post和get请求????????????????.openConnection();
Http学习之应用HttpURLConnection发送post和get请求????????//?进行连接,但是实际上get?request要在下一句的connection.getInputStream()函数中才会真正发到
Http学习之应用HttpURLConnection发送post和get请求????????//?服务器
Http学习之应用HttpURLConnection发送post和get请求????????connection.connect();
Http学习之应用HttpURLConnection发送post和get请求????????//?取得输入流,并使用Reader读取
Http学习之应用HttpURLConnection发送post和get请求????????BufferedReader?reader?=?new?BufferedReader(new?InputStreamReader(
Http学习之应用HttpURLConnection发送post和get请求????????????????connection.getInputStream()));
Http学习之应用HttpURLConnection发送post和get请求????????System.out.println("=============================");
Http学习之应用HttpURLConnection发送post和get请求????????System.out.println("Contents?of?get?request");
Http学习之应用HttpURLConnection发送post和get请求????????System.out.println("=============================");
Http学习之应用HttpURLConnection发送post和get请求????????String?lines;
Http学习之应用HttpURLConnection发送post和get请求????????while?((lines?=?reader.readLine())?!=?null)?{
Http学习之应用HttpURLConnection发送post和get请求????????????System.out.println(lines);
Http学习之应用HttpURLConnection发送post和get请求????????}
Http学习之应用HttpURLConnection发送post和get请求????????reader.close();
Http学习之应用HttpURLConnection发送post和get请求????????//?断开连接
Http学习之应用HttpURLConnection发送post和get请求????????connection.disconnect();
Http学习之应用HttpURLConnection发送post和get请求????????System.out.println("=============================");
Http学习之应用HttpURLConnection发送post和get请求????????System.out.println("Contents?of?get?request?ends");
Http学习之应用HttpURLConnection发送post和get请求????????System.out.println("=============================");
Http学习之应用HttpURLConnection发送post和get请求????}
Http学习之应用HttpURLConnection发送post和get请求
Http学习之应用HttpURLConnection发送post和get请求????public?static?void?readContentFromPost()?throws?IOException?{
Http学习之应用HttpURLConnection发送post和get请求????????//?Post请求的url,与get不同的是不需要带参数
Http学习之应用HttpURLConnection发送post和get请求????????URL?postUrl?=?new?URL(POST_URL);
Http学习之应用HttpURLConnection发送post和get请求????????//?打开连接
Http学习之应用HttpURLConnection发送post和get请求????????HttpURLConnection?connection?=?(HttpURLConnection)?postUrl
Http学习之应用HttpURLConnection发送post和get请求????????????????.openConnection();
Http学习之应用HttpURLConnection发送post和get请求????????//?Output?to?the?connection.?Default?is
Http学习之应用HttpURLConnection发送post和get请求????????//?false,?set?to?true?because?post
Http学习之应用HttpURLConnection发送post和get请求????????//?method?must?write?something?to?the
Http学习之应用HttpURLConnection发送post和get请求????????//?connection
Http学习之应用HttpURLConnection发送post和get请求????????//?设置是否向connection输出,因为这个是post请求,参数要放在
Http学习之应用HttpURLConnection发送post和get请求????????//?http正文内,因此需要设为true
Http学习之应用HttpURLConnection发送post和get请求????????connection.setDoOutput(true);
Http学习之应用HttpURLConnection发送post和get请求????????//?Read?from?the?connection.?Default?is?true.
Http学习之应用HttpURLConnection发送post和get请求????????connection.setDoInput(true);
Http学习之应用HttpURLConnection发送post和get请求????????//?Set?the?post?method.?Default?is?GET
Http学习之应用HttpURLConnection发送post和get请求????????connection.setRequestMethod("POST");
Http学习之应用HttpURLConnection发送post和get请求????????//?Post?cannot?use?caches
Http学习之应用HttpURLConnection发送post和get请求????????//?Post?请求不能使用缓存
Http学习之应用HttpURLConnection发送post和get请求????????connection.setUseCaches(false);
Http学习之应用HttpURLConnection发送post和get请求????????//?This?method?takes?effects?to
Http学习之应用HttpURLConnection发送post和get请求????????//?every?instances?of?this?class.
Http学习之应用HttpURLConnection发送post和get请求????????//?URLConnection.setFollowRedirects是static函数,作用于所有的URLConnection对象。
Http学习之应用HttpURLConnection发送post和get请求????????//?connection.setFollowRedirects(true);
Http学习之应用HttpURLConnection发送post和get请求
Http学习之应用HttpURLConnection发送post和get请求????????//?This?methods?only
Http学习之应用HttpURLConnection发送post和get请求????????//?takes?effacts?to?this
Http学习之应用HttpURLConnection发送post和get请求????????//?instance.
Http学习之应用HttpURLConnection发送post和get请求????????//?URLConnection.setInstanceFollowRedirects是成员函数,仅作用于当前函数
Http学习之应用HttpURLConnection发送post和get请求????????connection.setInstanceFollowRedirects(true);
Http学习之应用HttpURLConnection发送post和get请求????????//?Set?the?content?type?to?urlencoded,
Http学习之应用HttpURLConnection发送post和get请求????????//?because?we?will?write
Http学习之应用HttpURLConnection发送post和get请求????????//?some?URL-encoded?content?to?the
Http学习之应用HttpURLConnection发送post和get请求????????//?connection.?Settings?above?must?be?set?before?connect!
Http学习之应用HttpURLConnection发送post和get请求????????//?配置本次连接的Content-type,配置为application/x-www-form-urlencoded的
Http学习之应用HttpURLConnection发送post和get请求????????//?意思是正文是urlencoded编码过的form参数,下面我们可以看到我们对正文内容使用URLEncoder.encode
Http学习之应用HttpURLConnection发送post和get请求????????//?进行编码
Http学习之应用HttpURLConnection发送post和get请求????????connection.setRequestProperty("Content-Type",
Http学习之应用HttpURLConnection发送post和get请求????????????????"application/x-www-form-urlencoded");
Http学习之应用HttpURLConnection发送post和get请求????????//?连接,从postUrl.openConnection()至此的配置必须要在connect之前完成,
Http学习之应用HttpURLConnection发送post和get请求????????//?要注意的是connection.getOutputStream会隐含的进行connect。
Http学习之应用HttpURLConnection发送post和get请求????????connection.connect();
Http学习之应用HttpURLConnection发送post和get请求????????DataOutputStream?out?=?new?DataOutputStream(connection
Http学习之应用HttpURLConnection发送post和get请求????????????????.getOutputStream());
Http学习之应用HttpURLConnection发送post和get请求????????//?The?URL-encoded?contend
Http学习之应用HttpURLConnection发送post和get请求????????//?正文,正文内容其实跟get的URL中'?'后的参数字符串一致
Http学习之应用HttpURLConnection发送post和get请求????????String?content?=?"firstname="?+?URLEncoder.encode("一个大肥人",?"utf-8");
Http学习之应用HttpURLConnection发送post和get请求????????//?DataOutputStream.writeBytes将字符串中的16位的unicode字符以8位的字符形式写道流里面
Http学习之应用HttpURLConnection发送post和get请求????????out.writeBytes(content);?
Http学习之应用HttpURLConnection发送post和get请求
Http学习之应用HttpURLConnection发送post和get请求????????out.flush();
Http学习之应用HttpURLConnection发送post和get请求????????out.close();?//?flush?and?close
Http学习之应用HttpURLConnection发送post和get请求????????BufferedReader?reader?=?new?BufferedReader(new?InputStreamReader(
Http学习之应用HttpURLConnection发送post和get请求????????????????connection.getInputStream()));
Http学习之应用HttpURLConnection发送post和get请求????????String?line;
Http学习之应用HttpURLConnection发送post和get请求????????System.out.println("=============================");
Http学习之应用HttpURLConnection发送post和get请求????????System.out.println("Contents?of?post?request");
Http学习之应用HttpURLConnection发送post和get请求????????System.out.println("=============================");
Http学习之应用HttpURLConnection发送post和get请求????????while?((line?=?reader.readLine())?!=?null)?{
Http学习之应用HttpURLConnection发送post和get请求????????????System.out.println(line);
Http学习之应用HttpURLConnection发送post和get请求????????}
Http学习之应用HttpURLConnection发送post和get请求????????System.out.println("=============================");
Http学习之应用HttpURLConnection发送post和get请求????????System.out.println("Contents?of?post?request?ends");
Http学习之应用HttpURLConnection发送post和get请求????????System.out.println("=============================");
Http学习之应用HttpURLConnection发送post和get请求????????reader.close();
Http学习之应用HttpURLConnection发送post和get请求????????connection.disconnect();
Http学习之应用HttpURLConnection发送post和get请求????}
Http学习之应用HttpURLConnection发送post和get请求
Http学习之应用HttpURLConnection发送post和get请求????/**
Http学习之应用HttpURLConnection发送post和get请求?????*?@param?args
Http学习之应用HttpURLConnection发送post和get请求?????*/
Http学习之应用HttpURLConnection发送post和get请求????public?static?void?main(String[]?args)?{
Http学习之应用HttpURLConnection发送post和get请求????????//?TODO?Auto-generated?method?stub
Http学习之应用HttpURLConnection发送post和get请求????????try?{
Http学习之应用HttpURLConnection发送post和get请求????????????readContentFromGet();
Http学习之应用HttpURLConnection发送post和get请求????????????readContentFromPost();
Http学习之应用HttpURLConnection发送post和get请求????????}?catch?(IOException?e)?{
Http学习之应用HttpURLConnection发送post和get请求????????????//?TODO?Auto-generated?catch?block
Http学习之应用HttpURLConnection发送post和get请求????????????e.printStackTrace();
Http学习之应用HttpURLConnection发送post和get请求????????}
Http学习之应用HttpURLConnection发送post和get请求????}
Http学习之应用HttpURLConnection发送post和get请求
Http学习之应用HttpURLConnection发送post和get请求}

?

?

转自:http://toughpatient5.diandian.com/post/2011-07-06/19241336

http://java.chinaitlab.com/net/831820.html

http://dusiguxia.blog.163.com/blog/static/5562931620119193430501/

http://androidyo.iteye.com/blog/624015

热点排行