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

com.dounine.clouddisk360.parser.deserializer.BaseRequestInterceptor Maven / Gradle / Ivy

package com.dounine.clouddisk360.parser.deserializer;

import com.dounine.clouddisk360.exception.CloudDiskException;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpException;
import org.apache.http.HttpRequest;
import org.apache.http.HttpRequestInterceptor;
import org.apache.http.protocol.HttpContext;

import java.io.IOException;

public class BaseRequestInterceptor implements HttpRequestInterceptor {
	
	public void process(HttpRequest request, HttpContext context) throws HttpException, IOException {
		requestInit(request,context);
	}
	
	public void requestInit(HttpRequest request, HttpContext context)throws HttpException, IOException {
		request.setHeader(Const.ACCEPT_KEY, Const.ACCEPT_VAL);
		request.setHeader(Const.ACCEPT_ENCODING_KEY, Const.ACCEPT_ENCODING_VAL);
		request.setHeader(Const.ACCEPT_LANGUAGE_KEY, Const.ACCEPT_LANGUAGE_VAL);
		request.setHeader(Const.CONNECTION_KEY, Const.CONNECTION_VAL);
		request.setHeader(Const.CONTENT_TYPE_KEY, Const.CONTENT_TYPE_VAL);
		request.setHeader(Const.USER_AGENT_KEY, Const.USER_AGENT_VAL);
	}
	
	public void process(HttpRequest request, HttpContext context,boolean useHost) throws HttpException, IOException {
		requestInit(request,context);
		String hostName = getRequestHostName(context);
		String host = getRequestHost(context);
		if(StringUtils.isNotBlank(hostName)){
			request.setHeader(Const.HOST_KEY,hostName);
		}else{
			request.setHeader(Const.HOST_KEY, Const.HOST_VAL);
		}
		if(StringUtils.isNotBlank(host)){
			request.setHeader(Const.REFERER_KEY, host+"/my/index");
			request.setHeader(Const.ORIGIN_KEY, host);
		}else{
			throw new CloudDiskException("Referer 与 Origin 不能为空");
		}
	}
	
	public String getRequestHostName(HttpContext context){
		if(null==context.getAttribute(BaseConst.REQUEST_HOST_NAME)){
			return null;
		}else{
			return context.getAttribute(BaseConst.REQUEST_HOST_NAME).toString();
		}
	}
	
	public String getRequestHost(HttpContext context){
		if(null==context.getAttribute(BaseConst.REQUEST_HOST_NAME)){
			return null;
		}else{
			return "http://"+String.valueOf(context.getAttribute(BaseConst.REQUEST_HOST_NAME));
		}
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy