课程咨询 :0731-88220680

长沙Java培训 > 达内新闻 > 与URL建立连接
  • 与URL建立连接

    发布:长沙Java培训      来源:达内新闻      时间:2016-05-06

  • 长沙java培训机构前面直接从URL得到输入流的方法只能用于读入URL的内容,如果既要读URL,又要往URL写,就必须先与指定的URL建立连接,再从连接中得到输入或输出流。

    可使用URL类中的openConnection()的方法来建立连接。如:

    try { URL yahoo = new URL("http://www.yahoo.com/"); yahoo.openConnection(); } catch (MalformedURLException e) { // new URL() failed。。。。。} catch (IOException e) { // openConnection() failed。。。。。}

    一旦连接建立成功,就意味着你的Java程序与指定的URL之间建立起一条通信链路,openConnection()方法会返回一个URLConnection类型的对象。如果因为某些原因(如服务器关机)导致连接建立失败,该方法就会产生一个IOException。

    连接建立成功后,利用URLConnection对象的getInputStream()方法可得到相应的输入流,通过它可读入对应URL的内容。

    例:

    import java.net.*; import java.io.*; public class URLConnectionReader { public static void main(String[] args) throws Exception { URL yahoo = new URL("http://www.yahoo.com/"); URLConnection yc = yahoo.openConnection(); BufferedReader in = new BufferedReader( new InputStreamReader( yc.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) System.out.println(inputLine); in.close(); } }

    该程序的功能与上一个例子相同。对于读URL中的数据,可使用上述两种方法中的任一种,但后一种方法还能利用URLConnection对象进行其他操作,如往URL中写数据。

    对于大部分URL对象,其对应的文件是常规的HTML文本,这样的URL只能读不能写。但如果URL对应的是一个程序(如CGI程序、servlet程序等),情况就不一样了。

    我们知道,很多网页都包含表单(form),它能让用户在其中输入信息,通常在按了提交(submit)按钮后就将表单中的数据通过网络传给Web服务器上指定程序。该程序就会接收数据并对它进行处理,处理结果通常以HTML文本的形式返回。

    如果URL对应的是一个这种类型的程序,Java程序就可以向该URL写数据,其效果与使用表单向该URL对应的程序传送数据是一样的。表单传送数据的方式有POST方式和GET方式两种,GET方式用于传送少量数据,POST方式用于传送较多的数据,写URL对应于POST方式。

    通常长沙java培训机构老师写URL的步骤如下:

    构造指定的URL对象

    建立与该URL的连接

    将该连接设成是可写的

    通过已建立的连接获得针对该URL的输出流,输出流实际上是与URL所对应的CGI或servlet程序的标准输入相联系的。

    往输出流写数据

    关闭输出流

    假设Web服务器上有一个CGI程序,该程序能从它的标准输入读入一个字符串,将里面的字符颠倒后再将结果送往标准输出。设该程序要求的输入格式为:

    string = string_to_reverse // string_to_reverse为要颠倒的字符串。

    由于Form中的数据传给CGI程序前必须进行编码(由浏览器完成这项工作),该程序也调用了URLEncoder类的encode()方法来对要传送的数据进行编码。程序中URLConnection对象的setDoOutput(true)方法用来设置URL连接为可写的。

    形成天才的决定因素应该是勤奋。长沙java培训小编坚信有几分勤学苦练是成正比例的。

上一篇:直接从URL中读数据

下一篇:URL在Java编程中的处理

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:01/20

Java--零基础业余班

Java--零基础业余班

开班日期:01/20

Java--大数据全日制班

Java--大数据全日制班

开班日期:01/20

Java--大数据业余制班

Java--大数据业余制班

开班日期:01/20

  • 网址:http://cs.java.tedu.cn     地址:长沙市开福区芙蓉中路一段 476 号建鸿达现代城 9 楼
  • 课程培训电话:0731-88220680     全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56