Http Cliennt 4.5.2はPOSTを通じてXMLを送信します.
2216 ワード
必要:
HttpClientのPOSTを通じて、XMLデータを一つのサービスインターフェースに送り、サービスインターフェースは一つのXMLファイルに戻り、XMLファイルを解析してJSONデータを得て、ページに表示します.
Http Clientバージョン:4.5.2
ダウンロード先:http://hc.apache.org/downloads.cgi
初めてHttp Clientを使います.3と4の違いが大きいです.ここでは4.5.2を例にします.
1、まず一つの方法getXMLStringの方法を作成し、転送が必要なXMLをつなぎ合わせます.
2、sendXMLDaByPost方法を作成し、二つのパラメータを伝達して入る.一つはサービスのurlで、一つは伝達が必要なXMLである.
パラメータ名を設定する時に、着信するパラメータ名は何ですか?
Baic NameValue Pair(「xml」、xmlData)
例えば、ここでのサービスの着信が必要なパラメータ名は「xml」であり、着信値はgetXMLStringから取得したxml値です.
ここで使っているサービスインターフェースにテストウィンドウがありますので、テストウィンドウを通じてサービスの伝達パラメータ名を確認できます.
3、Main方法を作成し、POSTにXMLを送信してテストする.
HttpClientのPOSTを通じて、XMLデータを一つのサービスインターフェースに送り、サービスインターフェースは一つのXMLファイルに戻り、XMLファイルを解析してJSONデータを得て、ページに表示します.
Http Clientバージョン:4.5.2
ダウンロード先:http://hc.apache.org/downloads.cgi
初めてHttp Clientを使います.3と4の違いが大きいです.ここでは4.5.2を例にします.
1、まず一つの方法getXMLStringの方法を作成し、転送が必要なXMLをつなぎ合わせます.
2、sendXMLDaByPost方法を作成し、二つのパラメータを伝達して入る.一つはサービスのurlで、一つは伝達が必要なXMLである.
パラメータ名を設定する時に、着信するパラメータ名は何ですか?
Baic NameValue Pair(「xml」、xmlData)
例えば、ここでのサービスの着信が必要なパラメータ名は「xml」であり、着信値はgetXMLStringから取得したxml値です.
ここで使っているサービスインターフェースにテストウィンドウがありますので、テストウィンドウを通じてサービスの伝達パラメータ名を確認できます.
3、Main方法を作成し、POSTにXMLを送信してテストする.
public class XMLClient {
private HttpClient client;
public static void main(String[] args) throws Exception {
XMLClient client = new XMLClient();
// XML
String result = client.sendXMLDataByPost("http://local/test", client.getXMLString());
System.out.println(result);
}
// XML
public String getXMLString() {
String XML_HEADER = "<?xml version=\"1.0\" encoding=\"GBK\"?>";
StringBuffer sb = new StringBuffer();
sb.append(XML_HEADER);
sb.append("<a>");
sb.append("<b>");
sb.append("<c>");
sb.append("DWMC");
sb.append("</c>");
sb.append("<d>");
sb.append("id=10");
sb.append("</d>");
sb.append("</SELECT>");
sb.append("</b>");
sb.append("</a>");
// String
return sb.toString();
}
// POST XML
public String sendXMLDataByPost(String url, String xmlData) throws Exception {
if (client == null){
client = HttpClients.createDefault();
}
HttpPost post = new HttpPost(url);
List<BasicNameValuePair> parameters = new ArrayList<>();
parameters.add(new BasicNameValuePair("xml", xmlData));
post.setEntity(new UrlEncodedFormEntity(parameters,"UTF-8"));
HttpResponse response = client.execute(post);
System.out.println(response.toString());
HttpEntity entity = response.getEntity();
String result = EntityUtils.toString(entity, "UTF-8");
return result;
}
}