0

REST Web サービスの GET および POST を使用するためのリクエスト パラメータを作成できません。以下のシナリオに基づいてガイドしてください。

以下のようなREST Webサービスがあり、2つの文字列パラメーターが必要な場合

webservice を使用するための一般的な Web URL :

/myWs/sayHello?name=ピーター&msg=ハイ

//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);
4

1 に答える 1

0

これは私が通常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アノテーションを使用してパラメーターを取得することもできます。その例と投稿の実行方法の例は、ここにあります

お役に立てれば。

于 2013-08-05T00:48:56.877 に答える