package iqq.im.service;
import iqq.im.QQException;
import iqq.im.core.QQService;
import iqq.im.http.QQHttpCookie;
import iqq.im.http.QQHttpListener;
import iqq.im.http.QQHttpRequest;
import iqq.im.http.QQHttpResponse;
import java.util.concurrent.Future;
public interface HttpService extends QQService {
public enum ProxyType {
HTTP,
SOCK4,
SOCK5
}
/**
* 设置HTTP代理
*
* @param proxyType 代理类型
* @param proxyHost 代理主机
* @param proxyPort 代理端口
* @param proxyAuthUser 认证用户名, 如果不需要认证,设置为null
* @param proxyAuthPassword 认证密码,如果不需要认证,设置为null
*/
public void setHttpProxy(ProxyType proxyType, String proxyHost,
int proxyPort, String proxyAuthUser, String proxyAuthPassword);
/**
* 创建一个请求 这个方法会填充默认的HTTP头,比如User-Agent
*
* @param method 请求方法,POST,GET,POST
* @param url 请求的URL
* @return
*/
public QQHttpRequest createHttpRequest(String method, String url);
/**
* 执行一个HTTP请求
*
* @param request 请求对象
* @param listener 请求回调
* @return 同步获取请求结果对象,可在这个对象上等待请求的完成
*/
public Future<QQHttpResponse> executeHttpRequest(QQHttpRequest request, QQHttpListener listener) throws QQException;
/**
* 获取一个cookie
*
* @param name Cookie名
* @param url 基于的URL
* @return cookie
*/
public QQHttpCookie getCookie(String name, String url);
/**
* *
* 设置UA,每次在HTTP请求是会附带上
*
* @param userAgent
*/
public void setUserAgent(String userAgent);
}