Gewusst wie: List oder String-array getForObject mit Feder RestTemplate

Ich entwickle einige restful services mit Spring. Ich habe Probleme mit dem übergeben/erste string-array oder großer string als Parameter an meine Dienst-controller. Meine code-Beispiele wie unten;

Controller:

@RequestMapping(value="/getLocationInformations/{pointList}", method=RequestMethod.GET)
@ResponseBody
public LocationInfoObject getLocationInformations(@PathVariable("pointList") String pointList)
{
    //code block
}

Sample-point-Liste:

String pointList = "37.0433;35.2663,37.0431;35.2663,37.0429;35.2664,37.0428;35.2664,37.0426;35.2665,37.0424;35.2667,37.0422;35.2669,37.042;35.2671,37.0419;35.2673,37.0417;35.2674,37.0415;35.2674,37.0412;35.2672,37.0408;35.267,37.04;35.2667,37.0396;35.2665,37.0391;35.2663,37.0388;35.2662,37.0384;35.266,37.0381;35.2659,37.0379;35.2658,37.0377;35.2657,37.0404;35.2668,37.0377;35.2656,37.0378;35.2652,37.0378;35.2652,37.0381;35.2646,37.0382;35.264,37.0381;35.2635,37.038;35.263,37.0379;35.2627,37.0378;35.2626,37.0376;35.2626,37.0372;35.2627,37.0367;35.2628,37.0363;35.2628,37.036;35.2629,37.0357;35.2629,37.0356;35.2628,37.0356;35.2628,37.0355;35.2626";

Web-service-client-code:

Map<String, String> vars = new HashMap<String, String>();
vars.put("pointList", pointList);

String apiUrl = "http://api.website.com/service/getLocationInformations/{pointList}";

RestTemplate restTemplate = new RestTemplate();
LocationInfoObject result = restTemplate.getForObject(apiUrl, LocationInfoObject.class, vars);

Wenn ich die client-seitige Anwendung, es wirft ein HttpClientErrorException: 400 Bad Request ich denke lange Standortinformationen string Ursachen für dieses problem. Also, wie kann ich dieses Problem lösen? Oder ist es möglich, die Buchung lange string-Wert als parameter in die web-service?

Thx allen

InformationsquelleAutor vtokmak | 2014-03-19

Schreibe einen Kommentar