首页 文章

如何为restful Web服务格式化xml输入并调用服务

提问于
浏览
1

嗨所有我使用restFul Web服务服务器端代码公开服务

@RequestMapping(value = "/getPerson",method = RequestMethod.POST)public ModelAndView getPerson(@RequestParam("inputXml")String inputXml){


返回new ModelAndView("userXmlView",BindingResult.MODEL_KEY_PREFIX String.class,"Test"); }

客户端实施是:

URL oracle = new URL("http://localhost:8081/testWeb/restServices/getPerson?inputXml=input");
         System.out.println("Oracle URl is "+oracle);
         HttpURLConnection connection = (HttpURLConnection)oracle.openConnection();
         connection.setDoOutput(true);
        connection.setRequestProperty("Content-type", "application/xml; charset:ISO-8859-1");
        connection.setRequestMethod("POST");
        BufferedReader in = new BufferedReader(new InputStreamReader(
                connection.getInputStream()));
        String inputLine;
       while ((inputLine = in.readLine()) != null) 
            System.out.println(inputLine);  
     in.close();

我能够使用URL http://localhost:8081/testWeb/restServices/getPerson?inputXml="input" 访问该服务实际上我的要求是,我需要传递xml字符串作为这样的输入

http://localhost:8081/testWeb/restServices/getPerson?inputXml="<?xml%20version="1.0"%20encoding="UTF-8"%20standalone="yes"?><product><code>WI1</code><name>Widget%20Number%20One</name><price>300.0</price></product>"

请帮我找到解决方案

2 回答

  • 0

    Maya, /getPerson 不是RESTful URI名称 . 你应该使用像 /person 这样的东西 . 这样,你可以 GET 它或 DELETE 使用HTTP .

  • 0

    看看RestAssured

    given().
           formParam("formParamName", "value1").
           queryParam("queryParamName", "value2").
    when().
           post("/something");
    

    或 Spring 天RestTemplate

    Map<String, String> vars = new HashMap<String, String>();
    vars.put("count", "5");
    restTemplate.getForObject(person, Person.class, vars);
    

相关问题