3.2.2 JAVA代码实现
创建一个文本文件,命名为helloworld.java,编辑代码如下:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
public class helloworld {
public static void main(String[] args) {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
String param = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Control attribute=\"Query\">\n<DeviceInfo/>\n</Control>\n";
try {
URL realUrl = new URL("http://10.129.250.151:80/xml");
// 打开和URL之间的连接,设备地址和web远程端口
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性//package com.pasier.quanzi.web.controller;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class listenserver extends ServerSocket {
listenserver(int serverPort) throws IOException {
// 用指定的端口构造一个ServerSocket
super(serverPort);
System.out.println("start listen 8090\n");
try {
while (true) {
// 监听一端口,等待客户接入
Socket socket = accept();
System.out.println("client " + socket +" connected\n");
// 将会话交给线程处理
new ServerThread(socket);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
close(); // 关闭监听端口
}
}
// inner-class ServerThread
class ServerThread extends Thread {
private Socket socket;
private BufferedReader in;
// Ready to conversation
public ServerThread(Socket s) throws IOException {
this.socket = s;
// 构造该会话中的输入输出流
in = new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"));
start();
}
// Execute conversation
public void run() {
try {
int n = 1;
while(true) {
// 通过输入流接收客户端信息
String line = in.readLine();
if(line==null || line.length()<=0){
if(n==1){//API信息中过滤http头和内容直接的空白
n = 0;
System.out.println("Receivedmessage: " + line);
continue;
}
else{
break;
}
}
System.out.println("Receivedmessage: " + line);
}
in.close();
socket.close();
//处理事件、话单或其他信息
System.out.println("client " + socket +" finished\n");
} catch (IOException e) {
e.printStackTrace();
}
}
}
// main method
public static void main(String[] args) throws IOException {
new listenserver(8090);
}
}
安装jdk 1.6以上环境,编译:javac helloworld.java,生成目标文件helloworld.class。然后直接运行java helloworld即可,测试可用。