diff --git a/.classpath b/.classpath index de02f03..d96e212 100644 --- a/.classpath +++ b/.classpath @@ -13,5 +13,6 @@ + diff --git a/src/org/sword/wechat4j/WechatSupport.java b/src/org/sword/wechat4j/WechatSupport.java index 79c3301..60589a9 100644 --- a/src/org/sword/wechat4j/WechatSupport.java +++ b/src/org/sword/wechat4j/WechatSupport.java @@ -11,6 +11,8 @@ import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; +import org.sword.lang.JaxbParser; +import org.sword.lang.StreamUtils; import org.sword.wechat4j.common.Config; import org.sword.wechat4j.common.ValidateSignature; import org.sword.wechat4j.event.EventType; @@ -23,8 +25,6 @@ import org.sword.wechat4j.response.VideoResponse; import org.sword.wechat4j.response.VoiceResponse; import org.sword.wechat4j.response.WechatResponse; -import org.sword.wechat4j.util.JaxbParser; -import org.sword.wechat4j.util.StreamUtils; diff --git a/src/org/sword/wechat4j/message/CustomerMsg.java b/src/org/sword/wechat4j/message/CustomerMsg.java index 0a0299a..1820a3f 100644 --- a/src/org/sword/wechat4j/message/CustomerMsg.java +++ b/src/org/sword/wechat4j/message/CustomerMsg.java @@ -9,13 +9,13 @@ import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; +import org.sword.lang.HttpUtils; import org.sword.wechat4j.event.MsgType; import org.sword.wechat4j.response.ArticleResponse; import org.sword.wechat4j.response.MusicResponse; import org.sword.wechat4j.response.VideoResponse; import org.sword.wechat4j.token.AccessToken; import org.sword.wechat4j.token.AccessTokenProxy; -import org.sword.wechat4j.util.HttpUtils; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; diff --git a/src/org/sword/wechat4j/message/TemplateMsg.java b/src/org/sword/wechat4j/message/TemplateMsg.java index 0beb506..c0e5687 100644 --- a/src/org/sword/wechat4j/message/TemplateMsg.java +++ b/src/org/sword/wechat4j/message/TemplateMsg.java @@ -5,10 +5,10 @@ package org.sword.wechat4j.message; import org.apache.log4j.Logger; +import org.sword.lang.HttpUtils; import org.sword.wechat4j.message.template.TemplateMsgBody; import org.sword.wechat4j.message.template.TemplateMsgData; import org.sword.wechat4j.token.AccessTokenProxy; -import org.sword.wechat4j.util.HttpUtils; import com.alibaba.fastjson.JSONObject; diff --git a/src/org/sword/wechat4j/token/AccessToken.java b/src/org/sword/wechat4j/token/AccessToken.java index ffbc87f..8fe6047 100644 --- a/src/org/sword/wechat4j/token/AccessToken.java +++ b/src/org/sword/wechat4j/token/AccessToken.java @@ -7,8 +7,8 @@ import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; +import org.sword.lang.HttpUtils; import org.sword.wechat4j.common.Config; -import org.sword.wechat4j.util.HttpUtils; import com.alibaba.fastjson.JSONObject; diff --git a/src/org/sword/wechat4j/user/UserManager.java b/src/org/sword/wechat4j/user/UserManager.java index 5c44919..b8d43dd 100644 --- a/src/org/sword/wechat4j/user/UserManager.java +++ b/src/org/sword/wechat4j/user/UserManager.java @@ -8,8 +8,8 @@ import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; +import org.sword.lang.HttpUtils; import org.sword.wechat4j.token.AccessTokenProxy; -import org.sword.wechat4j.util.HttpUtils; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; diff --git a/src/org/sword/wechat4j/util/HttpUtils.java b/src/org/sword/wechat4j/util/HttpUtils.java deleted file mode 100644 index 558a69a..0000000 --- a/src/org/sword/wechat4j/util/HttpUtils.java +++ /dev/null @@ -1,71 +0,0 @@ -/** - * - */ -package org.sword.wechat4j.util; - - -import org.apache.http.Consts; -import org.apache.http.HttpEntity; -import org.apache.http.client.fluent.Request; -import org.apache.http.entity.ContentType; -import org.apache.http.util.EntityUtils; -import org.apache.log4j.Logger; - -/** - * - * @author ChengNing - * @date 2014年12月12日 - */ -public class HttpUtils { - private static Logger logger = Logger.getLogger(HttpUtils.class); - - public static final int timeout = 10; - - /** - * post 请求 - * - * @param url - * @return - */ - public static String post(String url) { - return post(url, null); - } - - /** - * post 请求 - * - * @param url - * @param data - * @return - */ - public static String post(String url, String data) { - try { - HttpEntity entity = Request.Post(url) - .bodyString(data,ContentType.create("text/html", Consts.UTF_8)) - .execute().returnResponse().getEntity(); - return entity != null ? EntityUtils.toString(entity) : null; - } catch (Exception e) { - logger.error("post请求异常," + e.getMessage() + "\n post url:" + url); - e.printStackTrace(); - } - return null; - } - - /** - * 发送get请求 - * - * @param url - * @return - */ - public static String get(String url) { - try { - HttpEntity entity = Request.Post(url). - execute().returnResponse().getEntity(); - return entity != null ? EntityUtils.toString(entity) : null; - } catch (Exception e) { - logger.error("get请求异常," + e.getMessage() + "\n get url:" + url); - e.printStackTrace(); - } - return null; - } -} diff --git a/src/org/sword/wechat4j/util/JaxbParser.java b/src/org/sword/wechat4j/util/JaxbParser.java deleted file mode 100644 index 5191ad2..0000000 --- a/src/org/sword/wechat4j/util/JaxbParser.java +++ /dev/null @@ -1,129 +0,0 @@ -/** - * - */ -package org.sword.wechat4j.util; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.StringWriter; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.Marshaller; -import javax.xml.bind.Unmarshaller; - -import org.apache.log4j.Logger; - - -import com.sun.org.apache.xml.internal.serialize.OutputFormat; -import com.sun.org.apache.xml.internal.serialize.XMLSerializer; -import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream; - -/** - * @author ChengNing - * @date 2014年12月7日 - */ -public class JaxbParser { - - private static Logger logger = Logger.getLogger(JaxbParser.class); - - private Class clazz; - private String[] cdataNode; - - /** - * - * @param clazz - */ - public JaxbParser(Class clazz){ - this.clazz = clazz; - } - - /** - * 设置需要包含CDATA的节点 - * @param cdataNode - */ - public void setCdataNode(String[] cdataNode) { - this.cdataNode = cdataNode; - } - - /** - * 转为xml串 - * @param obj - * @return - */ - public String toXML(Object obj){ - String result = null; - try { - JAXBContext context = JAXBContext.newInstance(obj.getClass()); - Marshaller m = context.createMarshaller(); - m.setProperty(Marshaller.JAXB_ENCODING, "UTF-8"); - m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); - m.setProperty(Marshaller.JAXB_FRAGMENT, true);// 去掉报文头 - OutputStream os = new ByteOutputStream(); - StringWriter writer = new StringWriter(); - XMLSerializer serializer = getXMLSerializer(os); - m.marshal(obj, serializer.asContentHandler()); - result = os.toString(); - } catch (Exception e) { - e.printStackTrace(); - } - logger.info("response text:" + result); - return result; - } - - - /** - * 转为对象 - * @param is - * @return - */ - public Object toObj(InputStream is){ - JAXBContext context; - try { - context = JAXBContext.newInstance(clazz); - Unmarshaller um = context.createUnmarshaller(); - Object obj = um.unmarshal(is); - return obj; - } catch (Exception e) { - logger.error("post data parse error"); - e.printStackTrace(); - } - return null; - } - - /** - * XML转为对象 - * @param xmlStr - * @return - */ - public Object toObj(String xmlStr){ - InputStream is = new ByteArrayInputStream(xmlStr.getBytes()); - return toObj(is); - } - - /** - * 设置属性 - * @param os - * @return - */ - private XMLSerializer getXMLSerializer(OutputStream os) { - OutputFormat of = new OutputFormat(); - formatCDataTag(); - of.setCDataElements(cdataNode); - of.setPreserveSpace(true); - of.setIndenting(true); - of.setOmitXMLDeclaration(true); - XMLSerializer serializer = new XMLSerializer(of); - serializer.setOutputByteStream(os); - return serializer; - } - - /** - * 适配cdata tag - */ - private void formatCDataTag(){ - for(int i=0;i items = new ArrayList(); - items.add(item); - - wechatResponse.setMsgType(MsgType.news.name()); - wechatResponse.setArticleCount(String.valueOf(items.size())); - wechatResponse.setArticle(items); - wechatResponse.setFromUserName("fromuser"); - wechatResponse.setToUserName("touser"); - - String result = null; - try { - JaxbParser jaxbParser = new JaxbParser(WechatResponse.class); - //设置 - jaxbParser.setCdataNode(WechatResponse.CDATA_TAG); - result = jaxbParser.toXML(wechatResponse); - } catch (Exception e) { - e.printStackTrace(); - } -// return result; - System.out.println(result); - } - - @Test - public void testToObjInputStream() { - fail("Not yet implemented"); - } - - @Test - public void testToObjString() { - fail("Not yet implemented"); - } - -}