[size=small][color=olive][b]通过URL访问网络资源:
* URL对象代表统一资源定位器,它是指向互联网“资源”的指针,资源可以是简单的文件目录
也可以是更复杂的对象的引用,URL可以由协议名、主机、端口、和资源组成;
* 格式:protocal://host:port/resourceName;
例如:http://hao123.com/tiyan.html
* URL 类对象包含的一些方法:用于访问URL对应的资源:
url.getFile(); 获取此url的资源名;
url.getHost(); 获取此url的主机名;
url.getPath(); 获取此url的路径部分;
url.getPort(); 获取端口;
url.getProtocol();
openConnection(); 返回一个URLConnection对象,表示到URL所引用的远程对象连接;
openStream(); 打开此url连接,并返回一个用于读取该url资源的InputStream;
* 例如:访问网络资源上的一张图片;http://192.168.0.11:8080/s.jpg
java代码:[/b][/color][/size]
[size=small][color=olive][b]* 使用URLConnection 提交请求:
简介:URLConnection 是个抽象类,它由一个直接的子类HttpURLConnection;
方法的介绍:URL 的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和URL之间
的通信连接,程序可以通过URLConnection实例向URL发送请求,读取URL引用的资源;
使用步骤:
* 使用HttpURLConnection 访问网络:
简介:HttpURLConnection 继承了URLConnection,因此可用于向指定的网站发送get post请求;
在URLConnection的基础上提供了如下便捷的方法;
getResponsedCode(); 获取服务器上的响应代码;
getResponseMessage(); 获取服务器相应消息;
getResponseMethod(); 获取发送请求的方法;
setResponseMethod(String method); 设置发送请求的方法;
温馨提示:get与post的介绍:
* Http 通信中使用最多的是get 和post , GET 请求可以获取静态页面,可以把参数放在url
字符串后面传递给服务器;
* 不同点:post的参数不是放在url字符串里,而是放在http请求数据中;
案例:使用HttpURLConnection 访问网络图片:[/b][/color][/size]
java代码:
* URL对象代表统一资源定位器,它是指向互联网“资源”的指针,资源可以是简单的文件目录
也可以是更复杂的对象的引用,URL可以由协议名、主机、端口、和资源组成;
* 格式:protocal://host:port/resourceName;
例如:http://hao123.com/tiyan.html
* URL 类对象包含的一些方法:用于访问URL对应的资源:
url.getFile(); 获取此url的资源名;
url.getHost(); 获取此url的主机名;
url.getPath(); 获取此url的路径部分;
url.getPort(); 获取端口;
url.getProtocol();
openConnection(); 返回一个URLConnection对象,表示到URL所引用的远程对象连接;
openStream(); 打开此url连接,并返回一个用于读取该url资源的InputStream;
* 例如:访问网络资源上的一张图片;http://192.168.0.11:8080/s.jpg
java代码:[/b][/color][/size]
/* 测试:使用URL访问网络资源 */
OnClickListener listener = new OnClickListener() {
public void onClick(View v) {
try{
//http://192.168.0.11:8080/s.jpg 图片的网络地址
String url_path = "http://192.168.0.11:8080/s.jpg";
URL url = new URL(url_path);
/* 打开URL对应的资源的输入流 */
InputStream is = url.openStream();
/* 从InputStream中解析出图片 */
Bitmap bitmap = BitmapFactory.decodeStream(is);
/* 使用ImageView显示该图片 */
imageView.setImageBitmap(bitmap);
/* 关闭流 */
is.close();
/****************************************************/
/* 实现资源文件的保存 *//* 再次打开输入流 */
is = url.openStream();
/* 打开手机文件对应的输出流 *//* 参数:保存的文件名; 模式 */
OutputStream os = openFileOutput("pic.jpg", MODE_WORLD_WRITEABLE);
/* 字节数组 */
byte[] buffer = new byte[1024];
int hasRead = 0;
while((hasRead=is.read(buffer))>0){
os.write(buffer, 0, hasRead);
}
is.close();
os.close();
}catch(Exception ex){
}
}
};
[size=small][color=olive][b]* 使用URLConnection 提交请求:
简介:URLConnection 是个抽象类,它由一个直接的子类HttpURLConnection;
方法的介绍:URL 的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和URL之间
的通信连接,程序可以通过URLConnection实例向URL发送请求,读取URL引用的资源;
使用步骤:
* 使用HttpURLConnection 访问网络:
简介:HttpURLConnection 继承了URLConnection,因此可用于向指定的网站发送get post请求;
在URLConnection的基础上提供了如下便捷的方法;
getResponsedCode(); 获取服务器上的响应代码;
getResponseMessage(); 获取服务器相应消息;
getResponseMethod(); 获取发送请求的方法;
setResponseMethod(String method); 设置发送请求的方法;
温馨提示:get与post的介绍:
* Http 通信中使用最多的是get 和post , GET 请求可以获取静态页面,可以把参数放在url
字符串后面传递给服务器;
* 不同点:post的参数不是放在url字符串里,而是放在http请求数据中;
案例:使用HttpURLConnection 访问网络图片:[/b][/color][/size]
java代码:
/* 测试:通过HttpURLConnection 访问网络图片 */
OnClickListener listerner_httpURLConnection = new OnClickListener() {
public void onClick(View v) {
try{
String path = ""; //URL 地址
URL url = new URL(path);
/* 打开连接, 获取HttpURLConnection 的对象 */
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
/* 设置请求方式 */
conn.setRequestMethod("get");
/* 设置请求超时的时间 */
conn.setReadTimeout(5000);
/* 打开流,获取通道 *//* 可读流,从网络上将资源读取到内存中 */
InputStream is = conn.getInputStream();
/* 创建一个字节数据输出流;可写流 */
ByteArrayOutputStream baos = new ByteArrayOutputStream();
/* 创建一个字节数组 */
byte[] buffer = new byte[1024];
int len=0;
/* 每次读取数据1024个字节,直到没有数据可读时==-1 */
while((len=is.read(buffer))!=-1 ){
/* 将每次读取到的输入按指定大小写入输出流中 */
baos.write(buffer,0,len);
}
byte[] data = baos.toByteArray();
Bitmap bitmap = BitmapFactory.decodeByteArray(buffer, 0, data.length);
imageView.setImageBitmap(bitmap);
}catch(Exception ex){
Toast.makeText(MainActivity.this, "图片下载失败", 1000).show();
}
}
};