0

我無法形成使用REST Web服務GET和POST的請求參數,請根據以下情況指導任何人。如何編寫用於訪問Webservice的RestTemplate(GET,POST)

如果我有REST Web服務爲低於期待兩個字符串參數

一般的Web URL消費web服務:

/myWs/sayHello的名稱=彼得&味精=海

//如何傳遞獲取GET和POST結果的參數。

org.springframework.web.client.RestTemplate restTemplate = new RestTemplate(); 
String url = "http://localhost:8080/myWs/sayHello"; 
Map<String, String> vars = new HashMap<String, String>(); 
vars.put("name", "peter"); 
vars.put("msg", "Hai"); 
String result = restTemplate.getForObject(url+"/{name}/{msg}", String.class, vars); 
String result1 = restTemplate.postForObject(url, vars,String.class); 

System.out.println("GET result : "+result + "\nPOST result1"+result1); 

回答

0

這是怎麼了,我通常執行GET:

一個。 RestTemplate請求

// Create a new RestTemplate instance 
RestTemplate restTemplate = new RestTemplate(); 

// Add the Jackson message converter 
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter()); 

// Parameters 
StringBuilder params = new StringBuilder(); 
params.append("?lat="); 
params.append(lat); 
params.append("&lng="); 
params.append(lng); 

// Make the HTTP GET request, marshaling the response from JSON to an array of Stations 
Object results = restTemplate.getForObject(URL + params.toString(), ServiceStationJsonModel.class); 

// Do Something with the result 

b。 Web服務

@RequestMapping(value=URL, method = RequestMethod.GET, produces = "application/json") 
public @ResponseBody Object nearmeServiceStationRequest(HttpServletRequest request) { 

    String lat = request.getParameter("lat"); 
    String lng = request.getParameter("lng"); 
    // Do something with params 
    ... 
    return obj; 
} 

您還可以使用@PathVariable註解得到的參數。一個例子以及如何執行一個職位的例子可以發現here

希望這會有所幫助。