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); }