webservice初识

来源:互联网 发布:大学生网络信贷案例 编辑:程序博客网 时间:2024/05/20 16:33

    看来最经app很火,好多同事都要么转向android开发,要么做android接口开发。而我就现在做web service 开发。做web service 之前只是听过这个名词而已,但并不知道它是做什么的。今天看了下才知道原来他就是将整个应用对外提供一个接口,然后由其它应用调用,然后返回对应的数据。有一个典型的例子就是天气预报。由于天气预报是国家气象局提供,所以如果我们想将自己的程序也嵌入天气预报,这该怎怎么办呢?有两种办法:第一种就是自己弄一套检测天气的设备然后供自己程序调用,但是这样成本太贵(可以忽略)。第二种:就是气象局对外提供一个接口,使用者将城市和时间传入,然后气象局返回当天城市的天气。这样就简单了吧。

    上面就是web service,但是需要说明的是,上面所说的接口并不是java中的接口定义,上面说的接口实质上就是一个url。这样的话我们就可以通过这个url来达到我们想要的目的,而且这样可以做到跨平台,跨语言。因为它遵守的是tcp/ip协议,所以它并不限于语言,这样的话就可以有助于大大提高应用的可扩展性。而浏览器就是封装java的socket编程。

socket的server编程:

package com.dongbest.server;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;public class Server {public static void main(String[] args) throws Exception {ServerSocket serverSocket = new ServerSocket(9999);Socket socket = serverSocket.accept();byte[] bytes = new byte[1024];InputStream inputStream = socket.getInputStream();int length;StringBuffer sb = new StringBuffer();while ((length = inputStream.read(bytes)) != -1) {String str = new String(bytes, 0, length);sb.append(str);}System.out.println(sb.toString());System.out.println("服务器端已启动");inputStream.close();}}

socket的client编程:

package com.dongbest.server;import java.io.OutputStream;import java.net.Socket;public class Client {public static void main(String[] args) throws Exception {Socket socket = new Socket("localhost", 9999);OutputStream outputStream = socket.getOutputStream();String s = "dongbest";outputStream.write(s.getBytes());outputStream.flush();outputStream.close();}}


先启动server端,再运行client端就可以了。

做完才知道原来浏览器就是对java socket的一层封装。而且web service就是对外提供一个url,然后返回json数据(也有人说是xml)。这样就可以了,至于你的service用什么语言编写,怎么编写都不重要。所以你从java后台开发转到web service来只是分分钟的事,关键是心里别怕。

1 0