原文链接:http://www.cnblogs.com/fredric/archive/2012/03/03/2378680.html


REST的例子

与web service类似,REST利用一个更加接近http的协议传递数据。

请求的目的地即是一个URI,数据的格式可以是XML、JSON或者是纯文本。

下面是一个在myeclipse 8.6上的REST小例子,还很不完善先记录下来。

部署REST服务:web service project, 选择了REST的web service

package com.test;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import com.sun.jersey.spi.resource.Singleton;

@Produces("text/plain")
@Path("customers")
@Singleton
public class Interface {

    @GET
    public String getCustomers(){
        return "getCustomers all";
    }
    @GET  
    @Path("{id}")  
    public String getCustomer(@PathParam("id") String uid) {  
        return "your id is "+ uid;  
    }  
}

客户端调用:java project

package com.app;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class app {

    /**
     * @param args
*/
    public static void main(String[] args) throws MalformedURLException {
        // TODO Auto-generated method stub
//实例一个URL资源
        URL url = null;
        try {
            url = new URL("http://localhost:8080/java_ws01/services/customers");
            //url = new URL("http://localhost:8080/java_ws01/services/customers/321");
            HttpURLConnection connet;
            connet = (HttpURLConnection) url.openConnection();
            if(connet.getResponseCode() != 200){
                throw new IOException(connet.getResponseMessage());
            }
            //将返回的值存入到String中
            BufferedReader brd = new BufferedReader(new InputStreamReader(connet.getInputStream()));

            System.out.println(brd.readLine());

            connet.disconnect();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}