package com.suan.weclient.util;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import org.apache.http.Header;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import com.suan.weclient.R.id;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
import android.widget.ImageView;
public class WeChatLoader {
public static final int WECHAT_LOGIN_OK = 302;
public static final int WECHAT_MASS_OK = 0;
public static final int WECHAT_MASS_ERROR_ONLY_ONE = 64004;
public static final int WECHAT_STAR_OK = 0;
public static final int WECHAT_REPLY_OK = 0;
private static final String WECHAT_LOGIN_URL = "http://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN";
private static final String WECHAT_MESSAGE_LIST_URL_1 = "https://mp.weixin.qq.com/cgi-bin/message?t=message/list&count=20&day=7&token=";
private static final String WECHAT_MESSAGE_LIST_URL_2 = "&lang=zh_CN";
private static final String WECHAT_MESSAGE_LOAD_PAGE_URL_1 = "https://mp.weixin.qq.com/cgi-bin/message?t=message/list&action=&keyword=&frommsgid=";
private static final String WECHAT_MESSAGE_LOAD_PAGE_URL_2 = "&offset=";
private static final String WECHAT_MESSAGE_LOAD_PAGE_URL_3 = "&count=20&day=7&token=";
private static final String WECHAT_MESSAGE_LOAD_PAGE_URL_4 = "&lang=zh_CN";
private static final String WECHAT_MESSAGE_REPLY_URL = "https://mp.weixin.qq.com/cgi-bin/singlesend";
private static final String WECHAT_MESSAGE_STAR_URL = "https://mp.weixin.qq.com/cgi-bin/setstarmessage";
private static final String WECHAT_MESSAGE_MASS_URL = "https://mp.weixin.qq.com/cgi-bin/masssend";
private static final String WECHAT_GET_MESSAGE_PROFILE_IMG_URL_1 = "https://mp.weixin.qq.com/cgi-bin/getheadimg?token=";
private static final String WECHAT_GET_MESSAGE_PROFILE_IMG_URL_2 = "&fakeid=";
private static final String WECHAT_GET_USER_PROFILE_URL = "https://mp.weixin.qq.com/cgi-bin/home?t=home/index&lang=zh_CN&token=";
private static final String WECHAT_GET_MASS_DATA_URL_1 = "https://mp.weixin.qq.com/cgi-bin/masssendpage?t=mass/send&token=";
private static final String WECHAT_GET_MASS_DATA_URL_2 = "&lang=zh_CN";
private static final String WECHAT_GET_MESSAGE_IMG_URL_1 = "https://mp.weixin.qq.com/cgi-bin/getimgdata?token=";
private static final String WECHAT_GET_MESSAGE_IMG_URL_2 = "&msgid=";
private static final String WECHAT_GET_MESSAGE_IMG_URL_3 = "&mode=";
private static final String WECHAT_GET_MESSAGE_IMG_URL_4 = "&source=&fileId=0";
public static final String WECHAT_MESSAGE_IMG_LARGE = "large";
public static final String WECHAT_MESSAGE_IMG_SMALL = "small";
public interface WechatExceptionListener {
public void onError();
}
/**
* 回调接口 *
*/
public interface WechatLoginCallBack {
public void onBack(HttpResponse response);
}
public static void wechatLogin(
final WechatExceptionListener wechatExceptionListener,
final WechatLoginCallBack loginCallBack, final String username,
final String pwd, final String imgcode, final String f) {
final Handler loadHandler = new Handler() {
// 子类必须重写此方法,接受数据
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
// 此处可以更新UI
HttpResponse getHttpResponse = (HttpResponse) msg.obj;
loginCallBack.onBack(getHttpResponse);
}
};
new Thread() {
public void run() { Looper.prepare();
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>();
headerList
.add(new BasicNameValuePair("Referer",
"https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm-login&lang=zh_CN"));
headerList.add(new BasicNameValuePair("Content-Type",
"text/html; charset=utf-8"));
ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("username", username));
params.add(new BasicNameValuePair("pwd", pwd));
params.add(new BasicNameValuePair("imgcode", imgcode));
params.add(new BasicNameValuePair("f", f));
HttpResponse response = httpPost(WECHAT_LOGIN_URL, headerList,
params);
if (response != null) {
Message message = new Message();
message.obj = response;
loadHandler.sendMessage(message);
} else {
wechatExceptionListener.onError();
}
}
}.start();
}
public interface WechatMessageListCallBack {
public void onBack(HttpResponse response, String referer);
}
public static void wechatGetMessageList(
final WechatExceptionListener wechatExceptionListener,
final WechatMessageListCallBack messageListCallBack,
final UserBean userBean) {
final Handler loadHandler = new Handler() {
// 子类必须重写此方法,接受数据
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
// 此处可以更新UI
ResponseHolder responseHolder = (ResponseHolder) msg.obj;
messageListCallBack.onBack(responseHolder.getHttpResponse(),
responseHolder.getReferer());
}
};
new Thread() {
public void run() { Looper.prepare();
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>();
headerList.add(new BasicNameValuePair("Cookie", "slave_sid="
+ userBean.getSlaveSid() + "; " + "slave_user="
+ userBean.getSlaveUser()));
headerList.add(new BasicNameValuePair("Content-Type",
"text/html; charset=utf-8"));
String targetUrl = WECHAT_MESSAGE_LIST_URL_1
+ userBean.getToken() + WECHAT_MESSAGE_LIST_URL_2;
HttpResponse response = httpGet(targetUrl, headerList);
if (response != null) {
Message message = new Message();
ResponseHolder responseHolder = new ResponseHolder(response);
responseHolder.setReferer(targetUrl);
message.obj = responseHolder;
loadHandler.sendMessage(message);
} else {
wechatExceptionListener.onError();
}
}
}.start();
}
public interface WechatMessagePageCallBack {
public void onBack(HttpResponse response, String referer);
}
public static void wechatGetMessagePage(
final WechatExceptionListener wechatExceptionListener,
final WechatMessagePageCallBack messagePageCallBack,
final MessageHolder messageHolder, final int page) {
final Handler loadHandler = new Handler() {
// 子类必须重写此方法,接受数据
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
// 此处可以更新UI
ResponseHolder responseHolder = (ResponseHolder) msg.obj;
messagePageCallBack.onBack(responseHolder.getHttpResponse(),
responseHolder.getReferer());
}
};
new Thread() {
public void run() { Looper.prepare();
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>();
headerList.add(new BasicNameValuePair("Cookie", "slave_sid="
+ messageHolder.getUserBean().getSlaveSid() + "; "
+ "slave_user="
+ messageHolder.getUserBean().getSlaveUser()));
headerList.add(new BasicNameValuePair("Content-Type",
"text/html; charset=utf-8"));
int offset = (page - 1) * 20;
String targetUrl = WECHAT_MESSAGE_LOAD_PAGE_URL_1
+ messageHolder.getLatestMsgId()
+ WECHAT_MESSAGE_LOAD_PAGE_URL_2 + offset
+ WECHAT_MESSAGE_LOAD_PAGE_URL_3
+ messageHolder.getUserBean().getToken()
+ WECHAT_MESSAGE_LOAD_PAGE_URL_4;
HttpResponse response = httpGet(targetUrl, headerList);
if (response != null) {
Message message = new Message();
ResponseHolder responseHolder = new ResponseHolder(response);
responseHolder.setReferer(targetUrl);
message.obj = responseHolder;
loadHandler.sendMessage(message);
} else {
wechatExceptionListener.onError();
}
}
}.start();
}
public interface WechatMessageReplyCallBack {
public void onBack(HttpResponse response);
}
public static void wechatMessageReply(
final WechatExceptionListener wechatExceptionListener,
final WechatMessageReplyCallBack messagReplyCallBack,
final UserBean userBean, final MessageItem messageItem,
final String replyContent) {
final Handler loadHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
// 此处可以更新UI
HttpResponse getHttpResponse = (HttpResponse) msg.obj;
messagReplyCallBack.onBack(getHttpResponse);
}
};
new Thread() {
public void run() { Looper.prepare();
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>();
headerList.add(new BasicNameValuePair("Cookie", "slave_sid="
+ userBean.getSlaveSid() + "; " + "slave_user="
+ userBean.getSlaveUser()));
headerList.add(new BasicNameValuePair("Content-Type",
"text/html; charset=utf-8"));
headerList.add(new BasicNameValuePair("Referer", messageItem
.getReferer()));
ArrayList<NameValuePair> paramArrayList = new ArrayList<NameValuePair>();
paramArrayList.add(new BasicNameValuePair("mask", "false"));
paramArrayList.add(new BasicNameValuePair("tofakeid",
messageItem.getFakeId()));
paramArrayList.add(new BasicNameValuePair("imgcode", ""));
paramArrayList.add(new BasicNameValuePair("type", "1"));
paramArrayList.add(new BasicNameValuePair("content",
replyContent));
paramArrayList.add(new BasicNameValuePair("quickreplyid",
messageItem.getId()));
paramArrayList
.add(new BasicNameValuePair("t", "ajax-response"));
paramArrayList.add(new BasicNameValuePair("token", userBean
.getToken()));
paramArrayList.add(new BasicNameValuePair("lang", "zh_CN"));
String targetUrl = WECHAT_MESSAGE_REPLY_URL;
HttpResponse response = httpPost(targetUrl, headerList,
paramArrayList);
if (response != null) {
Message message = new Message();
message.obj = response;
loadHandler.sendMessage(message);
} else {
wechatExceptionListener.onError();
}
}
}.start();
}
public interface WechatMessageStarCallBack {
public void onBack(HttpResponse response);
}
public static void wechatMessageStar(
final WechatExceptionListener wechatExceptionListener,
final WechatMessageStarCallBack messagStarCallBack,
final UserBean userBean, final MessageItem messageItem,
final boolean star) {
final Handler loadHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
// 此处可以更新UI
HttpResponse getHttpResponse = (HttpResponse) msg.obj;
messagStarCallBack.onBack(getHttpResponse);
}
};
new Thread() {
public void run() { Looper.prepare();
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>();
headerList.add(new BasicNameValuePair("Cookie", "slave_sid="
+ userBean.getSlaveSid() + "; " + "slave_user="
+ userBean.getSlaveUser()));
headerList.add(new BasicNameValuePair("Content-Type",
"text/html; charset=utf-8"));
headerList.add(new BasicNameValuePair("Referer", messageItem
.getReferer()));
ArrayList<NameValuePair> paramArrayList = new ArrayList<NameValuePair>();
paramArrayList.add(new BasicNameValuePair("msgid", messageItem
.getId()));
paramArrayList.add(new BasicNameValuePair("value", star ? "1"
: "0"));
paramArrayList.add(new BasicNameValuePair("t",
"ajax-setstarmessage"));
paramArrayList.add(new BasicNameValuePair("token", userBean
.getToken()));
paramArrayList.add(new BasicNameValuePair("lang", "zh_CN"));
String targetUrl = WECHAT_MESSAGE_STAR_URL;
HttpResponse response = httpPost(targetUrl, headerList,
paramArrayList);
if (response != null) {
Message message = new Message();
message.obj = response;
loadHandler.sendMessage(message);
} else {
wechatExceptionListener.onError();
}
}
}.start();
}
public interface WechatMassCallBack {
public void onBack(HttpResponse response);
}
public static void wechatMass(
final WechatExceptionListener wechatExceptionListener,
final WechatMassCallBack massCallBack, final UserBean userBean,
final String content) {
final Handler loadHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
// 此处可以更新UI
HttpResponse getHttpResponse = (HttpResponse) msg.obj;
massCallBack.onBack(getHttpResponse);
}
};
new Thread() {
public void run() { Looper.prepare();
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>();
headerList.add(new BasicNameValuePair("Cookie", "slave_sid="
+ userBean.getSlaveSid() + "; " + "slave_user="
+ userBean.getSlaveUser()));
headerList.add(new BasicNameValuePair("Content-Type",
"text/html; charset=utf-8"));
headerList.add(new BasicNameValuePair("Referer",
"https://mp.weixin.qq.com/cgi-bin/masssendpage?t=mass/send&token="
+ userBean.getToken() + "&lang=zh_CN"));
ArrayList<NameValuePair> paramArrayList = new ArrayList<NameValuePair>();
paramArrayList.add(new BasicNameValuePair("type", "1"));
paramArrayList.add(new BasicNameValuePair("content", content));
paramArrayList.add(new BasicNameValuePair("sex", "0"));
paramArrayList.add(new BasicNameValuePair("groupid", "-1"));
paramArrayList.add(new BasicNameValuePair("synctxweibo", "0"));
paramArrayList.add(new BasicNameValuePair("synctxnews", "0"));
paramArrayList.add(new BasicNameValuePair("country", ""));
paramArrayList.add(new BasicNameValuePair("province", ""));
paramArrayList.add(new BasicNameValuePair("city", ""));
paramArrayList.add(new BasicNameValuePair("imgcode", ""));
paramArrayList.add(new BasicNameValuePair("token", userBean
.getToken()));
paramArrayList.add(new BasicNameValuePair("lang", "zh_CN"));
paramArrayList.add(new BasicNameValuePair("random", "0.7117042664902147"));
paramArrayList.add(new BasicNameValuePair("f", "json"));
paramArrayList.add(new BasicNameValuePair("ajax", "1"));
paramArrayList.add(new BasicNameValuePair("t", "ajax-response"));
String targetUrl = WECHAT_MESSAGE_MASS_URL;
HttpResponse response = httpPost(targetUrl, headerList,paramArrayList);
if (response != null) {
Message message = new Message();
message.obj = response;
loadHandler.sendMessage(message);
} else {
wechatExceptionListener.onError();
}
}
}.start();
}
public interface WechatGetHeadImgCallBack {
public void onBack(HttpResponse response, String referer,
ImageView imageView);
}
public static void wechatGetHeadImg(
final WechatExceptionListener wechatExceptionListener,
final WechatGetHeadImgCallBack getHeadImgCallBack,
final UserBean userBean, final String fakeId, final String referer,
final ImageView imageView) {
final Handler loadHandler = new Handler() {
// 子类必须重写此方法,接受数据
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
// 此处可以更新UI
ResponseHolder responseHolder = (ResponseHolder) msg.obj;
getHeadImgCallBack.onBack(responseHolder.getHttpResponse(),
responseHolder.getReferer(), imageView);
}
};
new Thread() {
public void run() { Looper.prepare();
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>();
headerList.add(new BasicNameValuePair("Cookie", "slave_sid="
+ userBean.getSlaveSid() + "; " + "slave_user="
+ userBean.getSlaveUser()));
headerList.add(new BasicNameValuePair("Content-Type",
"text/html; charset=utf-8"));
headerList.add(new BasicNameValuePair("Referer", referer));
String targetUrl = WECHAT_GET_MESSAGE_PROFILE_IMG_URL_1
+ userBean.getToken()
+ WECHAT_GET_MESSAGE_PROFILE_IMG_URL_2 + fakeId;
HttpResponse response = httpGet(targetUrl, headerList);
if (response != null) {
Message message = new Message();
ResponseHolder responseHolder = new ResponseHolder(response);
responseHolder.setReferer(targetUrl);
message.obj = responseHolder;
loadHandler.sendMessage(message);
} else {
wechatExceptionListener.onError();
}
}
}.start();
}
public interface WechatGetMessageImgCallBack {
public void onBack(HttpResponse response, ImageView imageView);
}
public static void wechatGetMessageImg(
final WechatExceptionListener wechatExceptionListener,
final WechatGetMessageImgCallBack getMessageImgCallBack,
final String msgId,
final String slaveSid,final String slaveUser,
final String token,
final String referer,
final ImageView imageView,final String imgType) {
final Handler loadHandler = new Handler() {
// 子类必须重写此方法,接受数据
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
// 此处可以更新UI
HttpResponse response = (HttpResponse)msg.obj;
getMessageImgCallBack.onBack(response,
imageView);
}
};
new Thread() {
public void run() { Looper.prepare();
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>();
headerList.add(new BasicNameValuePair("Cookie", "slave_sid="
+ slaveSid + "; " + "slave_user="
+ slaveUser));
headerList.add(new BasicNameValuePair("Content-Type",
"text/html; charset=utf-8"));
headerList.add(new BasicNameValuePair("Referer", referer));
String targetUrl = WECHAT_GET_MESSAGE_IMG_URL_1 + token+WECHAT_GET_MESSAGE_IMG_URL_2+msgId+WECHAT_GET_MESSAGE_IMG_URL_3+imgType+WECHAT_GET_MESSAGE_IMG_URL_4;
HttpResponse response = httpGet(targetUrl, headerList);
if (response != null) {
Message message = new Message();
message.obj = response;
loadHandler.sendMessage(message);
} else {
wechatExceptionListener.onError();
}
}
}.start();
}
private static HttpResponse httpPost(String targetUrl,
ArrayList<NameValuePair> headerArrayList,
ArrayList<NameValuePair> paramsArrayList) {
/* 声明网址字符串 */
/* 建立HTTP Post联机 */
HttpPost httpRequest = new HttpPost(targetUrl);
/*
* Post运作传送变量必须用NameValuePair[]数组储存
*/
try {
/* 发出HTTP request */
httpRequest.setEntity(new UrlEncodedFormEntity(paramsArrayList,
HTTP.UTF_8));
for (int i = 0; i < headerArrayList.size(); i++) {
httpRequest.addHeader(headerArrayList.get(i).getName(),
headerArrayList.get(i).getValue());
}
/* 取得HTTP response */
HttpResponse httpResponse = new DefaultHttpClient()
.execute(httpRequest);
/* 若状态码为200 ok */
if (httpResponse.getStatusLine().getStatusCode() == 200) {
/* 取出响应字符串 */
return httpResponse;
} else {
Log.e("errorcode", httpResponse.getStatusLine().toString());
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public interface WechatGetUserProfleCallBack {
public void onBack(HttpResponse response, String referer);
}
public static void wechatGetUserProfile(final WechatExceptionListener wechatExceptionListener,
final WechatGetUserProfleCallBack userProfileCallBack,
final UserBean userBean) {
final Handler loadHandler = new Handler() {
// 子类必须重写此方法,接受数据
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
// 此处可以更新UI
ResponseHolder responseHolder = (ResponseHolder) msg.obj;
userProfileCallBack.onBack(responseHolder.getHttpResponse(),
responseHolder.getReferer());
}
};
new Thread() {
public void run() { Looper.prepare();
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>();
headerList.add(new BasicNameValuePair("Cookie", "slave_sid="
+ userBean.getSlaveSid() + "; " + "slave_user="
+ userBean.getSlaveUser()));
headerList.add(new BasicNameValuePair("Content-Type",
"text/html; charset=utf-8"));
String targetUrl = WECHAT_GET_USER_PROFILE_URL
+ userBean.getToken();
HttpResponse response = httpGet(targetUrl, headerList);
if (response != null) {
Message message = new Message();
ResponseHolder responseHolder = new ResponseHolder(response);
responseHolder.setReferer(targetUrl);
message.obj = responseHolder;
loadHandler.sendMessage(message);
} else {
wechatExceptionListener.onError();
}
}
}.start();
}
public interface WechatGetMassData {
public void onBack(HttpResponse response);
}
public static void wechatGetMassData(
final WechatExceptionListener wechatExceptionListener,
final WechatMassCallBack massDataCallBack, final UserBean userBean) {
final Handler loadHandler = new Handler() {
// 子类必须重写此方法,接受数据
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
// 此处可以更新UI
HttpResponse response = (HttpResponse) msg.obj;
massDataCallBack.onBack(response);
}
};
new Thread() {
public void run() { Looper.prepare();
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>();
headerList.add(new BasicNameValuePair("Cookie", "slave_sid="
+ userBean.getSlaveSid() + "; " + "slave_user="
+ userBean.getSlaveUser()));
headerList.add(new BasicNameValuePair("Content-Type",
"text/html; charset=utf-8"));
headerList.add(new BasicNameValuePair("Referer",
WECHAT_GET_USER_PROFILE_URL + userBean.getToken()));
String targetUrl = WECHAT_GET_MASS_DATA_URL_1
+ userBean.getToken() + WECHAT_GET_MASS_DATA_URL_2;
HttpResponse response = httpGet(targetUrl, headerList);
if (response != null) {
Message message = new Message();
message.obj = response;
loadHandler.sendMessage(message);
} else {
wechatExceptionListener.onError();
}
}
}.start();
}
private static HttpResponse httpGet(String targetUrl,
ArrayList<NameValuePair> headerArrayList) {
/* 声明网址字符串 */
/* 建立HTTP Post联机 */
HttpGet httpRequest = new HttpGet(targetUrl);
/*
* Post运作传送变量必须用NameValuePair[]数组储存
*/
try {
/* 发出HTTP request */
for (int i = 0; i < headerArrayList.size(); i++) {
httpRequest.addHeader(headerArrayList.get(i).getName(),
headerArrayList.get(i).getValue());
}
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 130000);
HttpConnectionParams.setSoTimeout(httpParams, 150000);
/* 取得HTTP response */
HttpClient httpClient = new DefaultHttpClient(httpParams);
HttpResponse httpResponse = httpClient.execute(httpRequest);
/* 若状态码为200 ok */
if (httpResponse.getStatusLine().getStatusCode() == 200) {
/* 取出响应字符串 */
return httpResponse;
} else {
Log.e("errorcode", httpResponse.getStatusLine().toString());
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static String getMD5Str(String str) {
MessageDigest messageDigest = null;
try {
messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(str.getBytes("UTF-8"));
} catch (NoSuchAlgorithmException e) {
System.out.println("NoSuchAlgorithmException caught!");
System.exit(-1);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
byte[] byteArray = messageDigest.digest();
StringBuffer md5StrBuff = new StringBuffer();
for (int i = 0; i < byteArray.length; i++) {
if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
md5StrBuff.append("0").append(
Integer.toHexString(0xFF & byteArray[i]));
else
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
}
return md5StrBuff.toString();
}
public static class ResponseHolder {
private HttpResponse httpResponse;
private String referer = "";
public ResponseHolder(HttpResponse response) {
httpResponse = response;
}
public void setReferer(String referer) {
this.referer = referer;
}
public HttpResponse getHttpResponse() {
return httpResponse;
}
public String getReferer() {
return referer;
}
}
}