Rhythmk 一步一步学 JAVA (22) JAVA 网络编程

java

1、获取主机信息

@Test

public void GetDomainInfo() throws UnknownHostException {

String domain = "www.baidu.com";

InetAddress netAddress = InetAddress.getByName(domain);

// 获取主机名

System.out.println(netAddress.getHostName());

// IP地址

System.out.println(netAddress.getCanonicalHostName());

InetAddress ip2domain = InetAddress.getByAddress(new byte[] {

(byte) 115, (byte) 239, (byte) 210, (byte) 26 });

System.out.println(ip2domain.getCanonicalHostName());

System.out.println(ip2domain.getHostName());

/*

* 输出: www.baidu.com 115.239.210.26 115.239.210.26 115.239.210.26

*/

}

  2、URLEncode 跟 URLDecoder

// URLDecoder和URLEncoder

@SuppressWarnings("deprecation")

@Test

public void URLEncode() {

String result = URLEncoder.encode("我是Rhythmk,你呢?");

System.out.println(result);

// 输出:

// %E6%88%91%E6%98%AFRhythmk%2C%E4%BD%A0%E5%91%A2%EF%BC%9F

}

@Test

public void URLDecoder() {

String result = java.net.URLDecoder

.decode("%E6%88%91%E6%98%AFRhythmk%2C%E4%BD%A0%E5%91%A2%EF%BC%9F");

System.out.println(result);

/*

* 输出: 我是Rhythmk,你呢?

*/

}

  

3、POST GET 请求

	@Test

public void Get() throws IOException {

URLConnection urlConnect;

URL url = new URL("http://www.baidu.com");

urlConnect = url.openConnection();

BufferedReader biStream = null;

try {

urlConnect.connect();

Map<String, List<String>> map = urlConnect.getHeaderFields();

for (String key : map.keySet()) {

List<String> listKey = map.get(key);

for (String k : listKey) {

System.out.println("*****************" + k);

}

}

biStream = new BufferedReader(new InputStreamReader(

urlConnect.getInputStream()));

String html = "";

String line = null;

while ((line = biStream.readLine()) != null) {

html += line;

}

System.out

.println("************************* HTML 内容 ***********************");

System.out.println(html);

} catch (Exception e) {

e.printStackTrace();

} finally {

if (biStream != null) {

biStream.close();

}

}

}

@Test

public void Post() throws IOException {

BufferedReader biStream = null;

try {

URL url = new URL("http://passport.rhythmk.com/signin");

URLConnection urlConnect = url.openConnection();

// 设置通用的请求属性

urlConnect.setRequestProperty("accept", "*/*");

urlConnect.setRequestProperty("connection", "Keep-Alive");

urlConnect.setRequestProperty("user-agent",

"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

// 发送POST请求必须设置如下两行 ,需要在connect 之前设定好

urlConnect.setDoOutput(true);

urlConnect.setDoInput(true);

urlConnect.connect();

// 获取URLConnection对象对应的输出流

PrintWriter out = new PrintWriter(urlConnect.getOutputStream());

// 发送请求参数

out.print("returnUrl=http%3A%2F%2Fwww.ciwong.com%2F&username=a&password=d");

// flush输出流的缓冲

out.flush();

biStream = new BufferedReader(new InputStreamReader(

urlConnect.getInputStream()));

String html = "";

String line = null;

while ((line = biStream.readLine()) != null) {

html += line;

}

System.out

.println("************************POST* HTML 内容 ***********************");

System.out.println(html);

} catch (Exception e) {

e.printStackTrace();

} finally {

if (biStream != null) {

biStream.close();

}

}

}

  注意:

如果先

urlConnect.connect();

然后如下设置

urlConnect.setDoOutput(true);
urlConnect.setDoInput(true);

导致异常:

java.lang.IllegalStateException: Already connected

at java.net.URLConnection.setDoOutput(URLConnection.java:849)
at com.rhythmk.filedemo.net_demo1.Post(net_demo1.java:126) ....

   

以上是 Rhythmk 一步一步学 JAVA (22) JAVA 网络编程 的全部内容, 来源链接: utcz.com/z/393195.html

回到顶部