使用URL访问网络资源
使用URL访问网络资源
URL(Uniform Resource Locator)对象代表统一资源定位器,它是Internet上用来描述信息资源的字符串,是指向互联网资源的指针,主要用在各种WWW客户程序和服务器程序上。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。
URL的格式由下列三部分组成:
第一部分是协议(或称为服务方式);
第二部分是存有该资源的主机IP地址(有时也包括端口号);
第三部分是主机资源的具体地址,如目录和文件名等。
第一部分和第二部分之间用": //“符号隔开,第二部分和第三部分用”/"符号隔开。第一部分和第二部分是不可缺少的,第三部分有时可以省略。比如:
-
file://ftp.zzzy.com/pub/files/foobar.txt 代表存放主机ftp.zzzy.com上的pub/files/目录下的一个文件,文件名是foobar.txt
-
file://ftp.zzzy.com/pub 代表主机ftp.zzzy.com上的目录/pub。
-
file://ftp.zzzy.com/ 代表主机ftp.zzzy.com上的根目录。
-
http://www.zzzy.com.cn/tech/welcome.htm 其计算机域名为www.zzzy.com.cn。超级文本文件是在目录/tech下的welcome.htm
-
http://www.zzzy.com/xueshu/index.htm 其计算机域名为www.zzzy.com。超级文本文件是在目录/xueshu下的index.htm
URL类提供了多个构造器用于创建URL对象,一旦获得了URL对象之后,就可以它的方法来访问该URL对应的资源了。
-
String getFile() 获取当前URL的资源名
-
String getHost() 获取当前URL的主机名
-
String getPath() 获取当前URL的路径部分
-
int getPort() 获取当前URL的端口号
-
String getProtocol() 获取当前URL的协议名称
-
String getQuery() 获取当前URL的查询字符串部分
-
InputStream openStream() 打开当前URL的连接,并返回一个用于读取该URL资源的InputStream
示例:通过URL获取远程某网站上的一张图片并将其下载到本地Android设备中
第一步:在布局文件中提供一个id为show的ImageView。
第二步:编写Activity类代码如下:
public class WebActivity extends Activity {
private ImageView show;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
show = (ImageView) findViewById(R.id.show);
try {
URL url = new URL("http://www.zzzy.org/templets/default/images/logo.gif");// 定义一个URL对象
InputStream is = url.openStream();// 打开该URL对应的资源的输入流
Bitmap bitmap = BitmapFactory.decodeStream(is);// 从InputStream中解析出图片
show.setImageBitmap(bitmap);// 使用ImageView显示该图片
is.close();
is = url.openStream();// 再次打开URL对应的资源的输入流
// 打开手机文件对应的输出流
OutputStream os = openFileOutput("logo.gif", MODE_WORLD_READABLE);
byte[] buff = new byte[1024];
int hasRead = 0;
while ((hasRead = is.read(buff)) > 0) {// 将URL对应的资源下载到本地
os.write(buff, 0, hasRead);
}
is.close();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
第三步:因为程序需要访问互联网,所以我们还需要在功能清单文件中为其添加如下权限代码:
<uses-permission android:name="android.permission.INTERNET"/>
运行程序,文件下载下来且在界面中显示,在File Explorer视图下依次打开/data/data/com.hc.activity/files目录,我们会看到刚才从网络上下载下来的图片,如下图示:
File Explorer视图显示效果
推荐阅读
-
C#程序提示“正由另一进程使用,因此该进程无法访问该文件”的解决办法
-
SQL Server 定时访问url激活数据同步示例
-
Linux 安装JDK Tomcat MySQL的教程(使用Mac远程访问)
-
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
-
php使用curl简单抓取远程url的方法
-
微信开发中使用微信JSSDK和使用URL.createObjectURL上传预览图片的不同处理对比
-
golang如何使用sarama访问kafka
-
站长学院:URL中使用#号对网站真的好吗?
-
使用url_helper简化Python中Django框架的url配置教程
-
thinkphp四种url访问方式详解