1. 程式人生 > >三種方法實現呼叫Restful介面

三種方法實現呼叫Restful介面

複製程式碼
  1 package com.taozhiye.controller;
  2 
  3 import org.apache.http.HttpEntity;
  4 import org.apache.http.HttpResponse;
  5 import org.apache.http.NameValuePair;
  6 import org.apache.http.client.HttpClient;
  7 import org.apache.http.client.entity.UrlEncodedFormEntity;
  8 import org.apache.http.client.methods.HttpDelete;
9 import org.apache.http.client.methods.HttpGet; 10 import org.apache.http.client.methods.HttpPost; 11 import org.apache.http.client.methods.HttpPut; 12 import org.apache.http.impl.client.HttpClients; 13 import org.apache.http.message.BasicNameValuePair; 14 import org.springframework.beans.factory.annotation.Autowired;
15 import org.springframework.stereotype.Controller; 16 import org.springframework.web.bind.annotation.PathVariable; 17 import org.springframework.web.bind.annotation.RequestMapping; 18 import org.springframework.web.bind.annotation.RequestMethod; 19 import org.springframework.web.bind.annotation.ResponseBody;
20 21 import com.fasterxml.jackson.databind.ObjectMapper; 22 import com.taozhiye.entity.User; 23 import com.taozhiye.service.UserService; 24 25 import java.io.BufferedReader; 26 import java.io.IOException; 27 import java.io.InputStreamReader; 28 import java.io.OutputStream; 29 import java.net.HttpURLConnection; 30 import java.net.MalformedURLException; 31 import java.net.URL; 32 import java.net.URLEncoder; 33 import java.util.ArrayList; 34 import java.util.List; 35 36 @Controller 37 public class RestfulAction { 38 39 @Autowired 40 private UserService userService; 41 42 // 修改 43 @RequestMapping(value = "put/{param}", method = RequestMethod.PUT) 44 public @ResponseBody String put(@PathVariable String param) { 45 return "put:" + param; 46 } 47 48 // 新增 49 @RequestMapping(value = "post/{param}", method = RequestMethod.POST) 50 public @ResponseBody User post(@PathVariable String param,String id,String name) { 51 User u = new User(); 52 System.out.println(id); 53 System.out.println(name); 54 u.setName(id); 55 u.setPassword(name); 56 u.setEmail(id); 57 u.setUsername(name); 58 return u; 59 } 60 61 62 // 刪除 63 @RequestMapping(value = "delete/{param}", method = RequestMethod.DELETE) 64 public @ResponseBody String delete(@PathVariable String param) { 65 return "delete:" + param; 66 } 67 68 // 查詢 69 @RequestMapping(value = "get/{param}", method = RequestMethod.GET) 70 public @ResponseBody User get(@PathVariable String param) { 71 User u = new User(); 72 u.setName(param); 73 u.setPassword(param); 74 u.setEmail(param); 75 u.setUsername("愛愛啊"); 76 return u; 77 } 78 79 80 81 @RequestMapping(value = "dealCon2/{param}") 82 public @ResponseBody User dealCon2(@PathVariable String param) { 83 User user = null; 84 try { 85 HttpClient client = HttpClients.createDefault(); 86 if("get".equals(param)){ 87 HttpGet request = new HttpGet("http://localhost:8080/tao-manager-web/get/" 88 +"啊啊啊"); 89 request.setHeader("Accept", "application/json"); 90 HttpResponse response = client.execute(request); 91 HttpEntity entity = response.getEntity(); 92 ObjectMapper mapper = new ObjectMapper(); 93 user = mapper.readValue(entity.getContent(), User.class); 94 }else if("post".equals(param)){ 95 HttpPost request2 = new HttpPost("http://localhost:8080/tao-manager-web/post/xxx"); 96 List<NameValuePair> nvps = new ArrayList<NameValuePair>(); 97 nvps.add(new BasicNameValuePair("id", "啊啊啊")); 98 nvps.add(new BasicNameValuePair("name", "secret")); 99 UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(nvps, "GBK"); 100 request2.setEntity(formEntity); 101 HttpResponse response2 = client.execute(request2); 102 HttpEntity entity = response2.getEntity(); 103 ObjectMapper mapper = new ObjectMapper(); 104 user = mapper.readValue(entity.getContent(), User.class); 105 }else if("delete".equals(param)){ 106 107 }else if("put".equals(param)){ 108 109 } 110 } catch (Exception e) { 111 e.printStackTrace(); 112 } 113 return user; 114 } 115 116 117 }
複製程式碼