All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.wicp.tams.common.http.HttpCallSession Maven / Gradle / Ivy

The newest version!
package net.wicp.tams.common.http;

import java.util.Map;
import java.util.Set;
import java.util.concurrent.FutureTask;

import org.apache.http.Header;
import org.apache.http.client.CookieStore;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPatch;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.cookie.BasicClientCookie;

import com.fasterxml.jackson.databind.node.ObjectNode;

import net.wicp.tams.common.apiext.StringUtil;

public class HttpCallSession extends HttpCallAbs {

	public HttpCallSession(CookieStore cookieStore) {
		super(true, cookieStore);
	}

	public HttpCallSession() {
		this(new BasicCookieStore());
	}


	public HttpCallSession(String domain, String cookiestr) {
		super(true, HttpCallSession.initCookie(domain, cookiestr));
	}

	private static BasicCookieStore initCookie(String domain, String cookiestr) {
		BasicCookieStore basicCookieStore = new BasicCookieStore();
		// 初始化cookie
		Map parseCookie = StringUtil.parseCookie(cookiestr);
		for (String cookieKey : parseCookie.keySet()) {
			BasicClientCookie cookie = new BasicClientCookie(cookieKey, parseCookie.get(cookieKey));
			cookie.setDomain(domain);// "duckula-inner.abc.cn"
			cookie.setPath("/");
			basicCookieStore.addCookie(cookie);
		}
		return basicCookieStore;
	}


	public HttpResult doGet(String url) {
		HttpRequestBase rq = new HttpGet(url);
		HttpResult call = super.call(rq, null);
		return call;
	}

	public HttpResult doPatch(String url) {
		HttpRequestBase rq = new HttpPatch(url);
		HttpResult call = super.call(rq, null);
		return call;
	}

	public FutureTask doGetAsyn(String url) {
		HttpRequestBase rq = new HttpGet(url);
		return super.callAsyn(rq, null);
	}

	public HttpResult doPost(String url, ObjectNode param, Header... headers) {
		HttpPost doPostCommon = HttpClient.doPostCommon(url, param == null ? null : param.toString(), headers);
		HttpResult result = this.call(doPostCommon);
		return result;
	}

	public FutureTask doPostAsyn(String url, ObjectNode param, Header... headers) {
		HttpPost doPostCommon = HttpClient.doPostCommon(url, param.toString(), headers);
		return this.callAsyn(doPostCommon, null);
	}

	public HttpResult doPostForm(String url, Map params, Header... headers) {
		HttpPost doPostFormCommon = HttpClient.doPostFormCommon(url, params, headers);
		HttpResult result = this.call(doPostFormCommon);
		return result;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy