Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services 如何编写用于访问Web服务的RestTemplate(获取、发布)_Web Services_Spring_Webservice Client_Resttemplate_Webservicetemplate - Fatal编程技术网

Web services 如何编写用于访问Web服务的RestTemplate(获取、发布)

Web services 如何编写用于访问Web服务的RestTemplate(获取、发布),web-services,spring,webservice-client,resttemplate,webservicetemplate,Web Services,Spring,Webservice Client,Resttemplate,Webservicetemplate,我无法形成使用REST web服务GET和POST的请求参数,请任何人根据以下场景进行指导。 如果我有RESTWebService,如下所示,它需要两个字符串参数 使用Web服务的常规Web URL: /myWs/sayHello?name=Peter&msg=Hai //如何传递获取和发布结果的参数 org.springframework.web.client.RestTemplate restTemplate = new RestTemplate(); String url = "htt

我无法形成使用REST web服务GET和POST的请求参数,请任何人根据以下场景进行指导。

如果我有RESTWebService,如下所示,它需要两个字符串参数

使用Web服务的常规Web URL:

/myWs/sayHello?name=Peter&msg=Hai

//如何传递获取和发布结果的参数

 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);
org.springframework.web.client.RestTemplate RestTemplate=new RestTemplate();
字符串url=”http://localhost:8080/myWs/sayHello";
Map vars=newhashmap();
vars.put(“姓名”、“彼得”);
变量put(“msg”、“Hai”);
String result=restemplate.getForObject(url+“/{name}/{msg}”,String.class,vars);
stringresult1=restemplate.postForObject(url、vars、String.class);
System.out.println(“获取结果:+result+”\nPOST result1+result1);

这是我通常执行get的方式:

a。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。网络服务

@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注释来获取参数。可以找到这样一个例子,以及如何执行post的例子

希望这有帮助