2013-12-10 68 views
0

我猜我错过了一些Post对象Java中的URL,春天

我有一个CXF服务像

@POST 
@Path("/verify") 
@Produces({ "application/xml", "application/json" }) 
public Response getSmartAlertResults(
     UserDetails usrDetails); 

的UserDetails是只有两个领域的Java类用户名和密码。如何从代码发布数据到它。或者把它简单地形成另一个Java应用程序,我需要发布UserDetails对象。它将成为一个控制台应用程序。该服务没有被正确调用。

我做了什么?

  URL url = new URL("http://localhost/verify"); 

     HttpURLConnection conn = (HttpURLConnection) 
     url.openConnection(); 
     conn.setRequestMethod("POST"); 
     conn.setRequestProperty("Accept", "application/xml"); 
     conn.setDoOutput(true); 

     OutputStream os = conn.getOutputStream(); 

     ObjectOutputStream oos = new ObjectOutputStream(os); 
     oos.writeObject("usrDetails"); 
     // this is the object to pass 
        oos.writeObject(userDetails); 

     System.out.println(conn.getResponseCode()); 

回答

0

您可以使用CXF提供的weblclient。由于您使用JSON确保您的JSON提供正确配置

try { 
      String endPointURL = "your url"; 
      WebClient client = null; 


      client = WebClient.create(endPointURL); 

      client.accept(MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML); 

      MyObject obj =new MyObject(); 

      response = client.post(obj); 
     } catch (Exception e) { 
    } 
+0

它给我一个415错误 –

+0

哎呀,你需要添加XML和JSON接受类型 –