1、WebService实际上就是两个应用程序之间的远程调用,而且这种调用是跨语言的。
2、应用程序调用WebService的接口,实际上就是解析XML语言。也就是说两个应用程序之间的交流实际上就是通过XML来交流的。
3、WebService内部的实现是基于HTTP协议的,这跟一般的网络传输没什么区别,底层都是基于socket的。
下图说明了两个应用程序如何通过WebService来进行交互的:
图像流程解析:OA办公系统调用WebService接口,发出数据请求,天气预报服务一旦接受到请求,将数据通过WebService返回给系统。
形象示例对比图:
图像对比说明:中国人(OA办公系统)与日本人(天气预报服务)进行交互,但是他们语言不通,所以这是通过一个中间语言“英语(WebService)”来进行交互。
代码示例:
服务端代码:
public class Server {
public static void main(String[] args) throws Exception {
while (true) {
//建立服务端socket连接
ServerSocket serverSocket = new ServerSocket(6789);
//服务端监听请求
Socket socket = serverSocket.accept();
//从Socket中读出数据流
InputStream inputStream = socket.getInputStream();
//将字节流封装成字符流
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String str = bufferedReader.readLine();
//输出字符流
System.out.println("客户端说:" + str);
bufferedReader.close();
inputStream.close();
serverSocket.close();
}
}
}
客户端代码:
public class Client { public static void main(String[] args) throws Exception { //建立Socket连接 Socket socket = new Socket("192.168.1.105",6789); OutputStream outputStream = socket.getoutputStream(); BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream)); bufferedWriter.write("终于试验成功了!"); bufferedWriter.close(); outputStream.close(); socket.close(); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。