实现发送xml格式的请求
生活随笔
收集整理的這篇文章主要介紹了
实现发送xml格式的请求
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
還是map的參數比較好set一點。所以我通過把傳入的map參數轉為xml再發送請求
請求封裝:
public static Map HttpRequest(String urlStr , Map<String,String> map) {String xmlInfo = UnionPayKit.mapToXml(map);System.out.println("請求xml:\n" + xmlInfo + "\n");URL url = null;StringBuffer sb = new StringBuffer();try {url = new URL(urlStr);URLConnection conn = null;conn = url.openConnection();conn.setUseCaches(false);conn.setDoInput(true);conn.setDoOutput(true);conn.setRequestProperty("Content-Length", Integer.toString(xmlInfo.length()));conn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");OutputStream ops = conn.getOutputStream();OutputStreamWriter osw = new OutputStreamWriter(ops, "utf-8");osw.write(xmlInfo);osw.flush();osw.close();//發送成功后,獲取服務器的響應xml串:String line = "";InputStream is = conn.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(is,"utf-8"));//三層包裝while ((line = br.readLine()) != null) {sb.append(line + "\r\n");}System.out.println("請求響應:\n"+sb.toString());} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return UnionPayKit.xmlStrToMap(sb.toString());} mapToXml封裝: /*** map轉xml*/public static String mapToXml(Map<String, String> data){DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();DocumentBuilder documentBuilder = null;String output = "";try {documentBuilder = documentBuilderFactory.newDocumentBuilder();org.w3c.dom.Document document = documentBuilder.newDocument();org.w3c.dom.Element root = document.createElement("xml");document.appendChild(root);for (String key : data.keySet()) {String value = data.get(key);if (value == null) {value = "";}value = value.trim();org.w3c.dom.Element filed = document.createElement(key);filed.appendChild(document.createTextNode(value));root.appendChild(filed);}TransformerFactory tf = TransformerFactory.newInstance();Transformer transformer = tf.newTransformer();DOMSource source = new DOMSource(document);transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");transformer.setOutputProperty(OutputKeys.VERSION, "1.0");transformer.setOutputProperty(OutputKeys.INDENT, "yes");StringWriter writer = new StringWriter();StreamResult result = new StreamResult(writer);transformer.transform(source, result);output = writer.getBuffer().toString(); //.replaceAll("\n|\r", "");writer.close();} catch (Exception e) {e.printStackTrace();}return output;}?
總結
以上是生活随笔為你收集整理的实现发送xml格式的请求的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分享一个通过网络链接PDF转JPG的公用
- 下一篇: 逆向初学者做题记录3.28