Java - 如何在rest post方法中传递XML请求正文

Gif*_*fty 6 java

我需要通过传递 XML 请求正文来进行 api 调用 REST POST 方法。我通过 VB.net 实现了同样的目的。在 VB.net 中,我曾经XElement传递请求正文。

例如:

Dim xml As XElement = <Request xmlns="request"><ID>181</ID><Password>String content</Password><Service>service name</Service><UserName>username</UserName></Request>. 
Run Code Online (Sandbox Code Playgroud)

在Java中如何传递上述XML请求体来调用rest post方法。

Gif*_*fty 1

public static void main(String[] args) {        
        try {
            String url = "pass your url";
            URL obj = new URL(url);
            HttpURLConnection con = (HttpURLConnection) obj.openConnection();
            con.setRequestMethod("POST");
            con.setRequestProperty("Content-Type",
                    "application/xml;charset=utf-8");
            String urlParameters = "<Request xmlns=\"abc\"><ID>1</ID><Password></Password></Request>";
            con.setDoOutput(true);
            DataOutputStream wr = new DataOutputStream(con.getOutputStream());
            wr.writeBytes(urlParameters);
            wr.flush();
            wr.close();
            String responseStatus = con.getResponseMessage();

            BufferedReader in = new BufferedReader(new InputStreamReader(
                    con.getInputStream()));
            String inputLine;
            response = new StringBuffer();
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();
            System.out.println("response:" + response.toString());


            }
        } catch (IOException e) {
            System.out.println("error" + e.getMessage());
        }
    }
Run Code Online (Sandbox Code Playgroud)