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");
- }
-
-}