RESTful Java client with java.net.URL
2015-08-27 13:28
477 查看
In this tutorial, we show you how to create a RESTful Java client with Java build-in HTTP client library. It’s simple to use and good enough to perform basic operations for REST service.
The RESTful services from last “Jackson + JAX-RS” article will be reused, and we will use “
The RESTful services from last “Jackson + JAX-RS” article will be reused, and we will use “
java.net.URL” and “
java.net.HttpURLConnection” to create a simple Java client to send “GET” and “POST” request.
1. GET Request
Review last REST service, return “json” data back to client.@Path("/json/product") public class JSONService { @GET @Path("/get") @Produces("application/json") public Product getProductInJSON() { Product product = new Product(); product.setName("iPad 3"); product.setQty(999); return product; } //...
Java client to send a “GET” request. 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 NetClientGet { // http://localhost:8080/RESTfulExample/json/product/get public static void main(String[] args) { try { URL url = new URL("http://localhost:8080/RESTfulExample/json/product/get"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setRequestProperty("Accept", "application/json"); if (conn.getResponseCode() != 200) { throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode()); } BufferedReader br = new BufferedReader(new InputStreamReader( (conn.getInputStream()))); String output; System.out.println("Output from Server .... \n"); while ((output = br.readLine()) != null) { System.out.println(output); } conn.disconnect(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Output…
Output from Server ….{"qty":999,"name":"iPad 3"}
2. POST Request
Review last REST service, accept “json” data and convert it into Product object, via Jackson provider automatically.@Path("/json/product") public class JSONService { @POST @Path("/post") @Consumes("application/json") public Response createProductInJSON(Product product) { String result = "Product created : " + product; return Response.status(201).entity(result).build(); } //...
Java client to send a “POST” request, with json string. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class NetClientPost { // http://localhost:8080/RESTfulExample/json/product/post public static void main(String[] args) { try { URL url = new URL("http://localhost:8080/RESTfulExample/json/product/post"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoOutput(true); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "application/json"); String input = "{\"qty\":100,\"name\":\"iPad 4\"}"; OutputStream os = conn.getOutputStream(); os.write(input.getBytes()); os.flush(); if (conn.getResponseCode() != HttpURLConnection.HTTP_CREATED) { throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode()); } BufferedReader br = new BufferedReader(new InputStreamReader( (conn.getInputStream()))); String output; System.out.println("Output from Server .... \n"); while ((output = br.readLine()) != null) { System.out.println(output); } conn.disconnect(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Output…
Output from Server ….Product created : Product [name=iPad 4, qty=100]
相关文章推荐
- Struts2笔记——自定义拦截器
- Struts2笔记——自定义拦截器
- 查找算法Java
- java中的抽象类和接口
- java 通过LDAP 验证、添加、修改、删除
- java 通过LDAP 验证、添加、修改、删除
- java获取泛型的实际类型
- Struts2笔记——Action校验器
- Struts2笔记——Action校验器
- 多个数组全排列组合(不取重)
- Struts2 静态资源映射
- JAVA根据IP地址获取详细的地域信息
- RxJava 中的map与flatMap
- eclipse乱码解决
- 为什么需要配置path,什么时候需要classpath?
- java-web-j2e学习建议路线
- java 二维码生成和加密base64压码
- Struts2笔记——文件上传
- Struts2笔记——文件上传
- java-常用类