通过HTTP POST发送xml消息

时间:2014-07-31 17:42:53

标签: java xml http-post httpclient hl7

我需要发送一条HL7消息,该消息被解析为XML消息到下面的终点。

  • 主持人:iol.sandbox.ohie.org
  • 港口:5001
  • 用户名:admin
  • 密码:admin
  • HTTP方法:POST
  • HTTP路径:/ ws / rest / v1 / patients /

我正在使用Apache HttpClient来实现这一目标。以下是我正在使用的代码。

public void simpleHttpMessage() throws Exception{
    String url = "iol.sandbox.ohie.org";
    String USER_AGENT = "/ws/rest/v1/patients/";

    HttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost(url);

    // add header
    post.setHeader("User-Agent", USER_AGENT);

    List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
    urlParameters.add(new BasicNameValuePair("username", "admin"));
    urlParameters.add(new BasicNameValuePair("password", "admin"));

    post.setEntity(new UrlEncodedFormEntity(urlParameters));


    HttpResponse response = client.execute(post);
    System.out.println("\nSending 'POST' request to URL : " + url);
    System.out.println("Post parameters : " + post.getEntity());
    System.out.println("Response Code : " + 
                                response.getStatusLine().getStatusCode());

    BufferedReader rd = new BufferedReader(
                    new InputStreamReader(response.getEntity().getContent()));

    StringBuffer result = new StringBuffer();
    String line = "";
    while ((line = rd.readLine()) != null) {
        result.append(line);
    }

    System.out.println(result.toString());
}

我不确定应该在哪里传递我要发送的实际xml消息。我基本上试图通过HTTP POST发送一条解析成XML的HL7消息。

如果有人帮助我解决上述代码段中缺少的内容,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

因此,如果您尝试将xml放入正文

 String xml = "<xml>xxxx</xml>";
    HttpEntity entity = new ByteArrayEntity(xml.getBytes("UTF-8"));
    post.setEntity(entity);

我认为应该有效。但我真的只处理C#。 xml在哪里?