Http發送xml


import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class HttpXmlUtil {

	private String method = "POST";
	private String charset = "UTF-8";
	private String contentType = "text/xml";

	public String sendXmlMsg(String address, String xmlMsg) throws Exception {
		StringBuilder sb = new StringBuilder();
		URL url = new URL(address);
		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
		conn.setRequestMethod(method);
		conn.setDoOutput(true);
		conn.setDoInput(true);
		conn.setUseCaches(false);
		conn.setInstanceFollowRedirects(true);
		conn.setRequestProperty("Content-Type", contentType);
		conn.connect();
		// 向輸出流寫出數據
		PrintWriter pw = new PrintWriter(conn.getOutputStream());
		pw.write(xmlMsg);
		pw.flush();
		pw.close();
		String contentType = conn.getContentType();
		Pattern pattern = Pattern.compile("charset=.*:?");
		Matcher matcher = pattern.matcher(contentType);
		if (matcher.find()) {
			charset = matcher.group();
			if (charset.endsWith(";")) {
				charset = charset.substring(charset.indexOf("=") + 1, charset.indexOf(";"));
			} else {
				charset = charset.substring(charset.indexOf("=") + 1);
			}
			if (charset.contains("\"")) {
				charset = charset.substring(1, charset.length() - 1);
			}
			charset = charset.trim();
		}

		InputStream inStream = conn.getInputStream();
		BufferedReader ufferedReader = new BufferedReader(new InputStreamReader(inStream, charset));
		String line;
		while ((line = ufferedReader.readLine()) != null) {
			sb.append(line);
		}
		ufferedReader.close();
		conn.disconnect();
		return sb.toString();
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章