Java URL对象初始化以及通过URL或者URLConnection读取内容
2015-05-04 00:00
344 查看
摘要: 最近在读《Java语言程序设计第二版》,关于网络编程。Java 提供两种层次的网络支持,第一种,是URL层次,第二种是Socket层次。
1、public URL(String spec);
URL urlbase=new URL("http://my.oschina.net/u/2308739/admin/new-blog.html");
2、public URL(URL context,String spec);
URL urlbase=new URL("http://my.oschina.net/u/2308739/admin/");
URL indexUrl=new URL(urlbase,"new-blog.html");
3、public URL(String protocol,String host,String file);
通过协议名、主机名、文件名构造一个URL对象。
new URL("http","http://my.oschina.net","/u/2308739/admin/new-blog.html");
4、public URL(String protocol,String host,int port,String file);
通过协议名、主机名、端口号,文件名构造一个URL对象。
new URL("http","http://my.oschina.net",80,"/u/2308739/admin/new-blog.html");
这个方法的定义是:
public final Inputstream openstream() throws IOException;
URLConnection重要的获取连接的输入/输出流的方法。
Inputstream getInputstream()
Outputstream getOutputStream()
更多内容参考博文:
参考博文:http://www.cnblogs.com/nick-huang/p/3859353.html
一、URL层次。
URL对象的创建。1、public URL(String spec);
URL urlbase=new URL("http://my.oschina.net/u/2308739/admin/new-blog.html");
2、public URL(URL context,String spec);
URL urlbase=new URL("http://my.oschina.net/u/2308739/admin/");
URL indexUrl=new URL(urlbase,"new-blog.html");
3、public URL(String protocol,String host,String file);
通过协议名、主机名、文件名构造一个URL对象。
new URL("http","http://my.oschina.net","/u/2308739/admin/new-blog.html");
4、public URL(String protocol,String host,int port,String file);
通过协议名、主机名、端口号,文件名构造一个URL对象。
new URL("http","http://my.oschina.net",80,"/u/2308739/admin/new-blog.html");
二、通过URL读取内容
通过URL的openstream()方法,得到Java.io.inputstream类的对象,从该输入流中读取URL地址的内容。这个方法的定义是:
public final Inputstream openstream() throws IOException;
三、实例通过访问URL获取内容
package com.yuan.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; public class TestUrl { public static void main(String[] args) { // TODO Auto-generated method stub try { //String accessurlString=URLEncoder.encode("http://www.ifeng.com/", "utf-8"); URL ifeng=new URL("http://www.ifeng.com/"); BufferedReader bReader=new BufferedReader(new InputStreamReader(ifeng.openStream()));//通过URL的openstrea//m()将数据转换为inputstream String inputlineString; while((inputlineString=bReader.readLine())!=null){ System.out.println(inputlineString); } bReader.close(); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
四、实例通过访问URLConnection读取内容
通过对一个指定的URL之间建立一个连接,然后对该资源进行读写操作。URLConnection重要的获取连接的输入/输出流的方法。
Inputstream getInputstream()
Outputstream getOutputStream()
package com.yuan.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; public class TestUrl { public static void main(String[] args) { // TODO Auto-generated method stub try { //String accessurlString=URLEncoder.encode("http://www.ifeng.com/", "utf-8"); URL ifeng=new URL("http://www.ifeng.com/"); URLConnection urlConnection=ifeng.openConnection(); BufferedReader bReader=new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); String inputlineString; while((inputlineString=bReader.readLine())!=null){ System.out.println(inputlineString); } bReader.close(); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
五、实例通过URLConnection写内容
package com.yuan.test; import java.io.IOException; import java.io.InputStream; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.commons.io.IOUtils; public class TestUrlConnetion { public static void main(String[] args){ try{ // Configure and open a connection to the site you will send the request URL url = new URL("http://wx.tclha.com/login.do"); URLConnection urlConnection = url.openConnection(); // 设置doOutput属性为true表示将使用此urlConnection写入数据 urlConnection.setDoOutput(true); // 定义待写入数据的内容类型,我们设置为application/x-www-form-urlencoded类型 urlConnection.setRequestProperty("content-type", "application/x-www-form-urlencoded"); HttpURLConnection httpURLConnection = (HttpURLConnection)urlConnection;//httpurlconection 有可以获得返回状态值的方法。 /****httpurlconnetion一些配置属性*httpURLConnection.setDoOutput(true); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setRequestProperty("Accept-Charset", "utf-8"); httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); httpURLConnection.setRequestProperty("Content-Length", String.valueOf(parameterData.length()));****/ // 得到请求的输出流对象 OutputStreamWriter out = new OutputStreamWriter(httpURLConnection.getOutputStream()); // 把数据写入请求的Body out.write("userName=yuanw&passWord=121212"); out.flush(); out.close(); System.out.println("ResponseCode:"+httpURLConnection.getResponseCode()); if (httpURLConnection.getResponseCode() >= 300) { System.out.println("HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode()); } // 从服务器读取响应 InputStream inputStream = urlConnection.getInputStream(); String encoding = urlConnection.getContentEncoding(); System.out.println("encoding:"+encoding); String body = IOUtils.toString(inputStream, "utf-8"); System.out.println(body); }catch(IOException e){ Logger.getLogger(TestUrlConnetion.class.getName()).log(Level.SEVERE, null, e); } } }
更多内容参考博文:
参考博文:http://www.cnblogs.com/nick-huang/p/3859353.html
相关文章推荐
- Webkit初始化以及载入URL过程中各种对象的建立时序以及DOM树的建立详情分析
- 通过URL对象获取指定网页的内容
- 如何获得servletConfig对象和servletContext对象以及通过这两个对象获得初始化参数
- Webkit初始化以及加载URL过程中各种对象的建立时序以及DOM树的建立详情分析
- Java IO File对象 获取目录内容 以及过滤器
- [置顶] ios对象初始化以及初始化方法
- AppleWatch开发教程之Watch应用对象新增内容介绍以及编写运行代码
- 定义一个交通工具(Vehicle)的类,在测试类Vehicle中的main()中实例化一个交通工具对象,通过方法给它初始化speed,size的值,并打印出来。另外,调用加速,减速的方法对速度进行改变
- html5的FormData对象和input的file属性以及window.URL.createObjectURL( ) 方法
- 通过Url抓取网页内容
- android客户端通过Get方式提交参数给服务器,使用URL和HttpURLConnection实现,以及乱码问题解决
- 读取XML数据时,已超过最大字符串内容长度配额(8192)。可以通过更改创建XML阅读器时使用的XmlDictionaryReaderQuotas对象上的MaxStringContentLength属
- 网络爬虫(二):利用urllib2通过指定的URL抓取网页内容
- ASP.NET 实现通过URL 获取远程的图片或者文件方法
- [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容
- java分别通过httpclient和HttpURLConnection获取图片验证码内容
- 对象初始化以及在构造函数和析构函数中调用virtual函数的问题
- ES通过脚本获取数组对象,以及Kibana相关操作
- [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容
- Java中初始化对象的顺序,静态代码块的用法以及Static的用法详解