用到的jar:commons-codec-1.6.jar、commons-httpclient-3.0.jar、commons-logging-1.1.3.jar
package com.httpclient;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
public class TT {
public static void main(String[] args) {
TT dp = new TT();
System.out.println(dp.getPack("1039", "1003"));
}
public String getPack(String grade,String subject) {
TreeMap<String,String> map=new TreeMap<String,String>();
map.put("commandid", "guestpacklist");
map.put("grade", grade);
map.put("subject", subject);
NameValuePair[] data = new NameValuePair[addSigned(map).keySet().size()];
Iterator it = map.entrySet().iterator();
int i = 0;
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
Object key = entry.getKey();
Object value = entry.getValue();
data[i] = new NameValuePair(key.toString(), value.toString());
i++;
}
HttpClient client = new HttpClient();
PostMethod post = new PostMethod("http://api.xxx.hk/api/android/");
post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"UTF-8");
post.setRequestBody(data);
try {
client.executeMethod(post);
return post.getResponseBodyAsString();
} catch (Exception e) {
e.printStackTrace();
} finally {
post.releaseConnection();
}
return "nothing response!maybe can`t connect to the host!";
}
public static TreeMap<String, String> addSigned(
TreeMap<String, String> parmas) {
// 前面参数(TreeMap),组合后再拼上key,最后一起加密为signed参数。最后返回之前的参数和signed
String signed = "";
Set<String> key = parmas.keySet();
for (Iterator it = key.iterator(); it.hasNext();) {
String s = (String) it.next();
// P.systemOut(s + " -> ");
// P.systemOut(parmas.get(s));
signed += s + parmas.get(s);
}
signed += "abcde123abcde123abcde123abcde123a";
parmas.put("signed", JT_MD5.encodeString(signed.getBytes()));
return parmas;
}
}