在计算机应用技术中,URL是Uniform Resource Locator的缩写,意思是统一资源定位器。URL是指向互联网“资源”的指针,这里的资源可以是简单的文件或目录,也可以是对更为复杂的对象引用,例如对数据库或搜索引擎的查询。在大多数情况下,URL是由协议名、主机、端口和资源组成的,URL需要满足如下的格式。
例如下面就是一个URL地址。
JDK为用户提供了一个URI类,其代表一个统一资源标识符。Java的URI不能用于定位任何资源,它唯一的作用是解析。在URL中包含了一个可以打开到达该资源的输入流,因此可以将URL类理解为URI的一个特例。
在URL类中,提供了多个可以创建URL对象的构造器,一旦获得了URL对象之后,就可以调用下面的方法来访问该URL对应的资源。
□String getFile():获取此URL的资源名。
□String getHost():获取此URL的主机名。
□String getPath():获取此URL的路径部分。
□int getPort():获取此URL的端口号。
□String getProtocol():获取此URL的协议名称。
□String getQuery():获取此URL的查询字符串部分。
□URLConnection openConnection():返回一个URLConnection对象,它表示到URL所引用的远程对象的连接。
□InputStream openStream():打开与此URL的连接,并返回一个用于读取该URL资源的InputStream。
在URL中,可以使用方法openConnection()返回一个URLConnection对象,该对象表示应用程序和URL之间的通信链接。应用程序可以通过URLConnection实例向此URL发送请求,并读取URL引用的资源。
创建一个和URL连接的,并发送请求,读取此URL引用的资源的步骤如下:
(1)通过调用URL对象openConnection()方法来创建URLConnection对象。
(2)设置URLConnection的参数和普通请求属性。
(3)如果只是发送GET方式请求,使用方法connect建立和远程资源之间的实际连接即可;如果需要发送POST方式的请求,需要获取URLConnection实例对应的输出流来发送请求参数。
(4)远程资源变为可用,程序可以访问远程资源的头字段或通过输入流读取远程资源的数据。
在建立和远程资源的实际连接之前,可以通过如下方法来设置请求头字段。
□setAllowUserInteraction:设置该URLConnection的allowUserInteraction请求头字段的值。
□setDoInput:设置该URLConnection的doInput请求头字段的值。
□setDoOutput:设置该URLConnection的doOutput请求头字段的值。
□setIfModifiedSince:设置该URLConnection的ifModifiedSince请求头字段的值。
□setUseCaches:设置该URLConnection的useCaches请求头字段的值。
除此之外,还可以使用如下方法来设置或增加通用头字段。
□setRequestProperty(String key,String value):设置该URLConnection的key,请求头字段的值为value。
□addRequestProperty(String key,String value):为该URLConnection的key请求头字段的增加value值,该方法并不会覆盖原请求头字段的值,而是将新值追加到原请求头字段中。
当发现远程资源可以使用后,使用如下方法访问头字段和内容。
□Object getContent():获取该URLConnection的内容。
□String getHeaderField(String name):获取指定响应头字段的值。(www.xing528.com)
□getInputStream():返回该URLConnection对应的输入流,用于获取URLConnection响应的内容。
□getOutputStream():返回该URLConnection对应的输出流,用于向URLConnection发送请求参数。
□getHeaderField:根据响应头字段来返回对应的值。
因为在程序中需要经常访问某些头字段,所以Java为用户提供了如下方法来访问特定响应头字段的值。
□getContentEncoding:获取content-encoding响应头字段的值。
□getContentLength:获取content-length响应头字段的值。
□getContentType:获取content-type响应头字段的值。
□getDate():获取date响应头字段的值。
□getExpiration():获取expires响应头字段的值。
□getLastModified():获取last-modified响应头字段的值。
在编程过程中,无需担心普通Java平台和Android平台的差异,URLConnection在Java中的用法就是在Android应用中的用法。在接下来的内容中,将通过一个具体实例来讲解在Android系统中使用类URLConnection的基本方法。
本实例的功能是,在Gallery中显示某个指定QQ空间中的照片,这样做的好处是节约手机的内置存储空间。在具体实现上,需要将URL网址的相片实时处理下载后,以InputStream转换为Bitmap,这样才能放入BaseAdapter中取用。在运行实例前,需要预先准备照片并上传到网络空间中,在获取相片的连接后,再以String数组方式放在程序中,并对BaseAdapter稍作修改,再加上对URL对象的访问以及URLConnection连接的处理。
本实例的具体实现流程如下。
(1)编写布局文件main.xml,在里面插入了一个Gallery控件来实现滑动相簿效果。具体代码如下。
(2)编写主程序文件QQ.java,其具体实现流程如下。
□分别声明在Gallery中要显示的5副图片的地址栏字符串,具体代码如下。
□引入布局文件main.xml,定义类成员myContext即Context对象,然后设置只有一个参数C的构造器。具体代码如下。
□定义方法getCount()来返回全部已定义图片的总量,定义方法getItem(int position)获取当前容器中图像数的数组ID。具体代码如下。
□定义方法getScale,利用getScale根据中央位移量返回views的大小。具体代码如下。
执行后将在Gallery中显示指定的图片,如图3-2所示。
图3-2 执行效果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。