java — требуются базовые примеры, демонстрирующие использование нового HTTP-клиента (v4.x)

Я работаю над изменением HTTP-клиента в приложении с HTTP-клиента Commons v3.x на новый HTTP-клиент v4.x. Я искал, но не смог найти хороших примеров для следующих сценариев: можете ли вы указать мне хороший учебник/статью о новом HTTP-клиенте (что-то похожее на отличную статью сообщества Wiki на SO на java.net.url)?

(1) установить политику использования файлов cookie

(2) установить Http Proxy, определяющий хост/домен, а также имя пользователя/пароль

В настоящее время это делается следующим образом:

Credentials credentials =
            ( host == null || domain == null || "".equals(host.trim()) ||     
           "".equals(domain.trim()) ) ?
                new UsernamePasswordCredentials(username, password) :
                new NTCredentials(username, password, host, domain);

 client.getState().setProxyCredentials( AuthScope.ANY, credentials);

(3) Учетные данные аутентификации определяются в старом http-клиенте с помощью следующего кода:

  client.getState().setCredentials(
                new AuthScope(urlObj.getHost(), urlObj.getPort()),
                new UsernamePasswordCredentials(username, password)
            );

Как это сделать в новом HTTP-клиенте?

(4) Объявление новой переменной метода HTTP и для этой переменной указание метода как GET или POST

Код, используемый для вышеуказанного в настоящее время--

 HttpMethodBase method;
method = createPostMethod(url, params, multipart, charset);
 method = createGetMethod(url, params, charset);

(5) Добавление заголовков запроса к методу -

Например, чтобы установить пользовательский агент в качестве пользовательского агента по умолчанию, используется следующий код:

method.addRequestHeader(new Header("User-Agent", DEFAULT_USER_AGENT));

person Arvind    schedule 26.01.2012    source источник


Ответы (1)


(1) файл cookie см. это из другого вопроса

(2) Прокси:

httpclient.getCredentialsProvider().setCredentials(
                    new AuthScope("localhost", 8080),
                    new UsernamePasswordCredentials("username", "password"));

HttpHost targetHost = new HttpHost("www.verisign.com", 443, "https");
HttpHost proxy = new HttpHost("localhost", 8080);

httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);

HttpGet httpget = new HttpGet("/");

от:

httpcomponents-client-4.1.3\examples\org\apache\http\examples\client\ClientProxyAuthentication.java

(3) Не уверен

(4) метод

HttpGet httpget = new HttpGet(url);
HttpPost httpost = new HttpPost("https://portal.sun.com/amserver/UI/Login?" +
                    "org=self_registered_users&" +
                    "goto=/portal/dt&" +
                    "gotoOnFail=/portal/dt?error=true");

Из примера ClientFormLogin.java

(5) поле заголовка:

HttpGet get = new HttpGet(url);
get.setHeader("Content-Type", "text/html");
get.setHeader("User-Agent","Mozilla/4.0 (MobilePhone SCP-5500/US/1.0) NetFront/3.0 MMP/2.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)");
get.setHeader("Accept-Charset", Chareset+";q=0.7,*;q=0.7");//"utf-8;q=0.7,*;q=0.7");
get.getParams().setParameter("http.socket.timeout",20000);

Как насчет этого? Просто посмотрите примеры.

person Jacob    schedule 02.03.2012