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を送信してテストする.
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;
	}

}