package kaoqin; import org.apache.http.Header; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpEntityEnclosingRequestBase; import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; /** * User: mzang * Date: 2014-11-10 * Time: 16:26 */ public class HttpRequestUtil { public static void main(String[] args) { } public static void addHeaders(HttpRequestBase req, String headerStr) { String[] headers = headerStr.split("\\n"); for (String header : headers) { int index = header.indexOf(':'); String key = header.substring(0, index).trim(); if ("Content-Length".equals(key)) { continue; } String value = header.substring(index + 1).trim(); req.setHeader(key, value); } } public static void addFormData(HttpEntityEnclosingRequestBase req, String formStr) throws UnsupportedEncodingException { String[] formDatas = formStr.split("\\n"); List<NameValuePair> params = new ArrayList<NameValuePair>(); for (String formData : formDatas) { int index = formData.indexOf(':'); String key = formData.substring(0, index).trim(); String value = formData.substring(index + 1).trim(); params.add(new BasicNameValuePair(key, value)); } req.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); } public static String handleSetCookie(String cookie) { String[] cookieEntities = cookie.split(";"); StringBuilder cookieRet = new StringBuilder(); for (String ck : cookieEntities) { ck = ck.trim(); if (ck.equalsIgnoreCase("httponly")) { continue; } if (ck.startsWith("path=")) { continue; } if (ck.startsWith("Path=")) { continue; } if (ck.startsWith("expires=")) { continue; } cookieRet.append(ck); cookieRet.append("; "); } cookieRet.delete(cookieRet.length() - 2, cookieRet.length()); return cookieRet.toString(); } public static String handleSetCookieHeaders(Header[] cookieHeaders) { if (cookieHeaders.length == 0) { return ""; } StringBuilder cookieRet = new StringBuilder(); for (Header header : cookieHeaders) { cookieRet.append(header.getValue()); cookieRet.append(";"); } cookieRet.delete(cookieRet.length() - 1, cookieRet.length()); return handleSetCookie(cookieRet.toString()); } }