21.5. 访问互联网资源¶
21.5.1. 使用HttpURLConnection发送GET请求¶
package com.a51work.cn;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class Get_network {
// Web服务网址
// static String urlString = "http://www.51work6.com/service/mynotes/WebService.php?"
// + "email=<1879324764@qq.com>&type=JSON&action=query";
static String urlString = "http://www.xz577.com/";
public static void main(String[] args) {
BufferedReader br = null;
HttpURLConnection conn = null;
try {
URL reqURL = new URL(urlString);
conn = (HttpURLConnection) reqURL.openConnection();
conn.setRequestMethod("GET");
// 打开网络通信输入流
InputStream is = conn.getInputStream();
// 通过is创建InputStreamReader对象
InputStreamReader isr = new InputStreamReader(is, "utf-8");
// 通过isr创建BufferedReader对象
br = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
line = br.readLine();
}
// 日志输出
System.out.println(sb);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (conn != null) {
// 断开连接
conn.disconnect();
}
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
21.5.2. 使用HttpURLConnection发送POST请求¶
package com.a51work.cn;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
public class POST_network {
// Web服务网址
static String urlString = "http://www.51work6.com/service/mynotes/WebService.php";
public static void main(String[] args) {
BufferedReader br = null;
HttpURLConnection conn = null;
try {
URL reqURL = new URL(urlString);
conn = (HttpURLConnection) reqURL.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
String param = String.format("email=%s&type=%s&action=%s",
"<1879324764@qq.com>", "JSON", "query");
// 设置参数
DataOutputStream dStream = new DataOutputStream(conn.getOutputStream());
dStream.writeBytes(param);
dStream.close();
// 打开网络通信输入流
InputStream is = conn.getInputStream();
// 通过is创建InputStreamReader对象
InputStreamReader isr = new InputStreamReader(is, "utf-8");
// 通过isr创建BufferedReader对象
br = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
line = br.readLine();
}
// 日志输出
System.out.println(sb);
} catch (Exception e) {
e.printStackTrace();
}finally {
if (conn != null){
conn.disconnect();
}
if (br != null){
try {
br.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
}
}
21.5.3. 实例:Downloader¶
package com.a51work.cn;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
public class Downloader {
// Web服务网址
private static String urlString = "http://www.51work6.com/" + "template/veikei_dz_com_20130920_color/images/logo.png";
public static void main(String[] args) {
download();
}
// 下载方法
public static void download() {
HttpURLConnection conn = null;
try {
// 创建URL对象
URL reqURL = new URL(urlString);
// 打开连接
conn = (HttpURLConnection) reqURL.openConnection();
try (// 从连接对象获得输入流
InputStream is = conn.getInputStream();
BufferedInputStream bin = new BufferedInputStream(is);
// 创建文件输出流
OutputStream os = new FileOutputStream("./download.png");
BufferedOutputStream bout = new BufferedOutputStream(os);) {
byte[] buffer = new byte[1024];
int bytesRead = bin.read(buffer);
while (bytesRead != -1) {
bout.write(buffer, 0, bytesRead);
bytesRead = bin.read(buffer);
}
} catch (IOException e) {
}
System.out.println("下载完成。");
} catch (IOException e) {
} finally {
if (conn != null) {
conn.disconnect();
}
}
}
}