webservice-接口测试1(Socket通信)
WebService:web服务
技术需求分析:1、手机归属地查询 2、天气预报查询 (XML,JSON)-->公用数据,提供给第三方使用。Java,NET PHP C C++
手机淘宝:http方式,给服务器发送请求,获取数据
项目调用项目有哪些方式:
1:A做了页面,B做了数据逻辑层。-->A 要调用B的数据,怎么处理?
1)http://192.168.0.1:8080/project/aaa_demo.action 缺点:传输的只能是字符串,参数多则不利于维护
2)socket通信:传输层,不支持http协议
3)WebService:可以在某台电脑中调用世界上其他电脑的Java Bean
Socket通信:传输层协议
1、不同的语言支持Socket通信吗? ---->支持
2、不同的协议支持Socket通信吗? ---->web程序可以调用sock请求,但由于协议不同,因此在处理的时候,要过滤http协议格式。返回时还需要添加http返回格式。
3、如果参数过多---->可维护性比较低
4、Socket服务有利于推广吗?---->推广成本高

客户端源码:
package cn.it.ws.a; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.util.Scanner; /* Socket客户端,用来发送给服务端请求 */ public class SocketClient { public static void main(String[] args) throws IOException { //从控制台接收数据 Scanner input = new Scanner(System.in); //创建socket通信 Socket sc = new Socket("127.0.0.1",9999); System.out.println("请输入要转化的字母:"); String initData = input.next(); //获取输出流,用来发送数据 OutputStream out = sc.getOutputStream(); out.write(initData.getBytes()); //等待服务器端返回数据 System.out.println("请等待服务端返回数据====="); //获取服务端返回的数据 InputStream in = sc.getInputStream(); byte[] b = new byte[1024]; int len = in.read(b); System.out.println("返回的结果为:"+new String(b,0,len)); out.close(); in.close(); sc.close(); } }
服务器端源码:
package cn.it.ws.a; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; /** * Socket服务端,接收客户端请求,实现小写转大写功能 */ public class SocketSer { public static void main(String[] args) throws IOException { ServerSocket ss = new ServerSocket(9999); while(true) { System.out.println("等待客户端请求---"); Socket socket = ss.accept(); System.out.println("握手成功---------"); //通过输入流获取数据 InputStream input = socket.getInputStream(); byte[] b = new byte[1024]; int len = input.read(b); String data = new String(b,0,len); System.out.println("客户端数据为:"+data); OutputStream output = socket.getOutputStream(); output.write(data.toUpperCase().getBytes()); output.close(); input.close(); socket.close(); } } }


浙公网安备 33010602011771号