java xmlutil_HttpXMLUtil.java

package com.smart.vote.util;

import java.io.BufferedReader;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.net.ConnectException;

import java.net.URL;

import java.util.Iterator;

import java.util.Map;

import java.util.Map.Entry;

import java.util.SortedMap;

import javax.net.ssl.HttpsURLConnection;

import javax.net.ssl.SSLContext;

import javax.net.ssl.SSLSocketFactory;

import javax.net.ssl.TrustManager;

import javax.servlet.ServletInputStream;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.codec.Charsets;

import org.apache.commons.lang.StringUtils;

public class HttpXMLUtil {

/**

* @author wangkai

* @date

* @Description:将请求参数转换为xml格式的string

* @param parameters

* 请求参数

* @return

*/

public static String getRequestXml(Map parameters) {

StringBuffer sb = new StringBuffer();

sb.append("");

Iterator> iterator = parameters.entrySet().iterator();

while (iterator.hasNext()) {

Map.Entry entry = (Map.Entry) iterator.next();

String key = (String) entry.getKey();

String value = (String) entry.getValue();

if ("attach".equalsIgnoreCase(key) || "body".equalsIgnoreCase(key)

|| "sign".equalsIgnoreCase(key)) {

sb.append("" + "" + key + ">");

} else {

sb.append("" + value + "" + key + ">");

}

}

sb.append("");

return sb.toString();

}

/**

* 发送https请求

* @param requestUrl 请求地址

* @param requestMethod 请求方式(GET、POST)

* @param outputStr 提交的数据

* @return 返回微信服务器响应的信息

*/

public static String httpsRequest(String requestUrl, String requestMethod, String outputStr) {

try {

// 创建SSLContext对象,并使用我们指定的信任管理器初始化

TrustManager[] tm = { new MyX509TrustManager() };

SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");

sslContext.init(null, tm, new java.security.SecureRandom());

// 从上述SSLContext对象中得到SSLSocketFactory对象

SSLSocketFactory ssf = sslContext.getSocketFactory();

URL url = new URL(requestUrl);

HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();

conn.setSSLSocketFactory(ssf);

conn.setDoOutput(true);

conn.setDoInput(true);

conn.setUseCaches(false);

// 设置请求方式(GET/POST)

conn.setRequestMethod(requestMethod);

conn.setRequestProperty("content-type", "application/x-www-form-urlencoded");

// 当outputStr不为null时向输出流写数据

if (null != outputStr) {

OutputStream outputStream = conn.getOutputStream();

// 注意编码格式

outputStream.write(outputStr.getBytes("UTF-8"));

outputStream.close();

}

// 从输入流读取返回内容

InputStream inputStream = conn.getInputStream();

InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");

BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

String str = null;

StringBuffer buffer = new StringBuffer();

while ((str = bufferedReader.readLine()) != null) {

buffer.append(str);

}

// 释放资源

bufferedReader.close();

inputStreamReader.close();

inputStream.close();

inputStream = null;

conn.disconnect();

return buffer.toString();

} catch (ConnectException ce) {

System.out.println("连接超时:{}" + ce);

} catch (Exception e) {

System.out.println("https请求异常:{}" + e);

}

return null;

}

}

一键复制

编辑

Web IDE

原始数据

按行查看

历史

可以处理非常复杂的xml,带节点保存,如节点a下的节点b下的name,调用可用map.get("a").get("b").get("name")如:{ "sectornum": "3", "ReturnResult": "0", "containers": { "container": [ { "shelfhight": "0.086", "cardinfos": { "cardinfo": [ { "cardname": "290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框3槽(0)HECM" }, { "cardname": "290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框3槽(10)FAN" }, { "cardname": "290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框3槽(9)UPEU" }, { "cardname": "290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框3槽(7)CMPT" }, { "cardname": "290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框3槽(2)HCPM" } ] } }, { "shelfhight": "0.308", "cardinfos": { "cardinfo": [ { "cardname": "290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框1槽(2)CRFU" }, { "cardname": "290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框1槽(4)CRFU" }, { "cardname": "290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框1槽(0)CRFU" } ] } }, { "shelfhight": "0.086" }, { "shelfhight": "0.044" } ] }, "rackname": "HW401C", "asset": { "comments": "", "buydate": "", "assetcardno": "B", "category": "" }, "barcode": "", "version": "", "entity": { "entitycode": "LTJHXYYCX01/XA-HWMACBTS529", "installaddress": "", "entityspec": "BTS", "entityname": "蓝田局华胥电信营业厅CDMA基站/BTS529", "entityid": "901061314", "model": "HUAWEI BTS3900", "vendorname": "HuaWei" }, "ReturnInfo": "成功" }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值