TUTORIAL JAVA AS - HTTP CLIENT COMPOSITION ENVIROMENT 7.1

Documentos relacionados
1.264 Lição 11. Fundamentos da Web

Leonardo Gresta Paulino Murta

INF1013 MODELAGEM DE SOFTWARE

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

Facebook. Java com o. Integrando Aplicações. Descubra como é fácil criar uma aplicação para rodar no Facebook. _capa

Web. Até a década de 1990, a Internet era utilizada. por pesquisadores, acadêmicos e universitários, para troca de arquivos e para correio eletrônico.

Aula 30 - Sockets em Java

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve

Programação com sockets (em Java)

Um pouco do Java. Prof. Eduardo

Configuração de um servidor FTP. Campus Cachoeiro Curso Técnico em Informática

Invocação de Métodos Remotos

FTP FILE F TRANSFER PROTOCOL. Tópicos

J820. Testes de interface Web com. HttpUnit. argonavis.com.br. Helder da Rocha

Centro de Inteligência em Tecnologia da Informação e Segurança Tutorial Ammyy admin

Como funciona a plataforma Superlógica? - Livro 4 de 4. Como funciona a interface de integração? Como você poderá complementar o sistema?

Sistemas Distribuídos

Linguagem de Programação III Aula 2 Revisão Parte II

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Programação com Acesso a Banco de Dados

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com

ANEXO TÉCNICO PROCEDIMENTOS PARA CONFIGURAR UMA CONEXÃO VPN COM A BEMATECH

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa

Sistemas Operacionais Livres. Servidor Web Apache

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS DE ACESSO REMOTO (TELNET E TERMINAL SERVICES) Professor Carlos Muniz

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

CONEXÃ O NFS-E SISTEMÃ ISS-INTEL UTILIZÃNDO JÃVÃ E SSL

Universidade Federal do Espírito Santo CCA UFES. Centro de Ciências Agrárias CCA UFES Departamento de Computação. Programação WEB

Uma aplicação distribuída

Autenticação e Autorização

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

Java para Desenvolvimento Web

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro Maio/ 2015

SISTEMAS DISTRIBUÍDOS

Programação Paralela e Distribuída. Prof. Cidcley T. de Souza

CONFIGURANDO O SERVIÇO DE VPN NO WINDOWS SERVER 2008 R2

Invocação de Métodos Remotos RMI (Remote Method Invocation)

Compartilhamento de internet usando recursos do Windows XP

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Programação de sockets com TCP

Programação Web com PHP. Prof. Wylliams Barbosa Santos Optativa IV Projetos de Sistemas Web

Amostras e Tutoriais Versão 7 Release 5. Tutorial da Amostra de Contratação para o IBM Process Designer

J550 Segurança e Controle de erros

Material de apoio a aulas de Desenvolvimento Web. Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS. AAS -

Aula 03 - Projeto Java Web

Minicurso Computação em Nuvem Prática: Openstack

Enterprise Java Beans

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

Hoje em dia é muito comum utilizar uma API de logging de mensagens como o Log4j para indicar os comportamentos de uma aplicação.

Java II. Sérgio Luiz Ruivace Cerqueira

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira

Esta nota apresenta como definir o SSL VPN no roteador Vigor.

Teleprocessamento e Redes

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Java para Desenvolvimento Web

Servidor, Proxy e Firewall. Professor Victor Sotero

Protocolo de Sinalização SIP

Programação de Sockets

Scriptlets e Formulários

Aula 1 Acesso a Banco de Dados

Manual de Utilização do GLPI

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto

Frameworks - Grails. Aécio Costa

Sockets em Java. Leonardo R. Nunes - leonardo@sumersoft.com. 1. Introdução. 2. Sockets TCP/IP

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta

Parte I. Demoiselle Mail

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha

INTRODUÇÃO À TECNOLOGIA SERVLETS

ROTEIRO PARA INSTALAÇÃO DO BITVISE, CONFIGURAÇÃO DE CHAVES SSH, DEFINIÇÃO DAS PORTAS PARA OS TÚNEIS SSH E CONFIGURAÇÃO DO THUNDERBIRD

LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER

Framework. Marcos Paulo de Souza Brito João Paulo Raittes

Instalando servidor Apache

Configuração de Digitalizar para

Para configurar seu Outlook Express 6 é preciso antes ter uma conta de criada em seu painel de gerenciamento.

Java : Comunicação Cliente-Servidor.

Curso de Aprendizado Industrial Desenvolvedor WEB

SERVIDOR WEB - APACHE SERVIDOR WEB - APACHE SERVIDOR WEB - APACHE 27/02/2012

Desenvolvimento Web TCC Turma A-1

Manual de Integração SMS

1.1 Porque um nível de aplicação proxy?

Auditoria e Segurança da Informação GSI536. Prof. Rodrigo Sanches Miani FACOM/UFU

Transferindo a carga da autenticação remota dos servidores

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha

2.0.0.X. Storage Client. TecnoSpeed. Tecnologia da Informação. Manual do Storage Client

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Manual de Utilização do PLONE (Gerenciador de página pessoal)

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

Tutorial de Uso com o Java

Transcrição:

TUTORIAL JAVA AS - HTTP CLIENT COMPOSITION ENVIROMENT 7.1 FABIO HAIDER 2008

C O N T E Ú D O : 1 HTTP Client...3 1.1 Arquitetura...3 1.2 Usando HTTP Client...3 1.2.1 Usuário...3 1.2.2 Implementação HTTP Client...3 1.3 Recursos...4 1.4 Exemplo...5 1.4.1 Especificando Host e Port e Recuperando uma Simples Requisição...5 2007 SAP CE 7.1 Java AS HTTP Client 2 /

1 HTTP Client 1.1 Arquitetura HTTP client implementa partes dos protocolos HTTP 1.0 e HTTP 1.1, incluindo: Métodos de requisição HTTP HEAD, GET, POST, CONNECT, DELETE, OPTIONS, TRACE e PUT. Métodos de extensão WEBDAV COPY, LOCK, MKCOL, MOVE, PROPFIND, PROPPATCH e UNLOCK. Verificação automática de autorizações, redirecionamento de requisições, cookies, pool de conexões. Tudo isto é feito pelo Gerenciador de Conexão. 1.2 Usando HTTP Client 1.2.1 Usuário Para implementar HTTP client, é necessário: Instanciar a classe HTTPClient Configurar as propriedades para a instância HTTP Client Conectar a implementação HTTP client e executar os métodos desejados Processar os resultados vindos da requisição 1.2.2 Implementação HTTP Client A implementação HTTP client contém métodos processadores HTTP, no qual checa a autenticação ou redirecionamento que podem ser executados, então a conexão ao Gerenciador de Conexão é estabelecida. O Gerenciador de Conexão HTTP escolhe entre abrir uma nova conexão ou pegar um conexão do pool de conexões e conecta ao servidor HTTP. Tendo recebido o recurso, o processador de método HTTP envia a resposta ao usuário. 2007 SAP CE 7.1 Java AS HTTP Client 3 /

1.3 Recursos Gerenciamento de Cookies permite ao servidor HTTP definir um cookie ou recuperar um existente. O método tem o estado e o cookie detém o estado. Use a API para recuperar este estado. Pool de Conexões Permite que múltiplos usuários compartilhem um conjunto de objetos de conexões provendo acesso para algum recurso de banc de dados. Isto é automaticamente executado pelo Gerenciador de Conexão. Métodos Customizados podem ser criados e enviados métodos HTTP customizados como uma requisição ao servidor HTTP. Gerenciadores de Conexão Plugáveis pode ser adicionado algoritmos para Gerenciadores de Conexão customizados e trocar o Gerenciador de Conexão padrão pela nova implementação. Suporte à Conexões Keep Alive permite conexões persistentes. Por padrão a conexão está sempre aberta. Suporte ao timeout da Conexão pode ser definido o tempo limite para poder recuperar uma conexão no Gerenciador de Conexão. Suporte ao timeout da Requisição pode ser definido a propriedade socket-timeout para lançar uma exceção por tempo limite, não ocorrendo a resposta. Suporte ao timeout para Conexões idle usando a API pode ser definido o tempo limite na qual todas as conexões idle são automaticamente fechadas. Logging Integrado usando a Logging API pode ser gerado automaticamente logs de diagnóstico e informação de segurança. Suporte ao SSL - suporte ao protocolo SSL, permitindo aos navegadores Web e servidores, comunicarem-se em uma conexão segura. Autenticação Basic suporte para autenticação Basic, onde é requerida uma instância do objeto UserPassCredentials que após ser preenchido com o nome de usuário e senha, é enviando ao cliente. Autenticação Digest suporte para autenticação Digest, com um pouco mais de segurança que a autenticação Basic. O suporte não transfere a senha livremente através da rede, mas de forma encriptada. É requerida uma instância do objeto UserPassCredentials que após ser preenchido com o nome de usuário e senha, é enviando ao cliente. Autenticação NTLM suporte ao protocolo proprietário que usa nomes do domínio como realm. Clientes podem provar a sua indentidade sem enviar a senha para o servidor HTTP. Autenticação Proxy suporte para autenticação Proxy, na qual é semelhate com a autenticação de servidor, com a diferença que as credenciais de cada proxy são armazenas independentemente. WEBDAV suporte ao Web-Based Distributed Authoring and Versioning, fornecendo funções para os usuários colaborarem, editarem e manusearem arquivos em servidores web remotos. 2007 SAP CE 7.1 Java AS HTTP Client 4 /

1.4 Exemplo Para rodar os nosso exeplo, será necessário baixar a API Jakarta Commons HTTP Client do seguinte endereço: http://linorg.usp.br/apache/httpcomponents/httpcore/binary/httpcomponents-core-4.0-beta1-bin.zip Utilizaremos a lib httpcore-4.0-beta1.jar em nosso projeto do NWDS. 1.4.1 Especificando Host e Port e Recuperando uma Simples Requisição 2007 SAP CE 7.1 Java AS HTTP Client 5 /

2007 SAP CE 7.1 Java AS HTTP Client 6 /

2007 SAP CE 7.1 Java AS HTTP Client 7 /

2007 SAP CE 7.1 Java AS HTTP Client 8 /

2007 SAP CE 7.1 Java AS HTTP Client 9 /

2007 SAP CE 7.1 Java AS HTTP Client 10 /

2007 SAP CE 7.1 Java AS HTTP Client 11 /

2007 SAP CE 7.1 Java AS HTTP Client 12 /

2007 SAP CE 7.1 Java AS HTTP Client 13 /

Coloque o seguinte código na classe: package com.tutorial.http.client; import java.net.socket; import org.apache.http.connectionreusestrategy; import org.apache.http.httphost; import org.apache.http.httpresponse; import org.apache.http.httpversion; import org.apache.http.impl.defaultconnectionreusestrategy; import org.apache.http.impl.defaulthttpclientconnection; import org.apache.http.params.basichttpparams; import org.apache.http.message.basichttprequest; import org.apache.http.params.httpparams; import org.apache.http.params.httpprotocolparams; import org.apache.http.protocol.basichttpprocessor; import org.apache.http.protocol.httpcontext; import org.apache.http.protocol.basichttpcontext; import org.apache.http.protocol.executioncontext; 2007 SAP CE 7.1 Java AS HTTP Client 14 /

import org.apache.http.protocol.httprequestexecutor; import org.apache.http.protocol.requestconncontrol; import org.apache.http.protocol.requestcontent; import org.apache.http.protocol.requestexpectcontinue; import org.apache.http.protocol.requesttargethost; import org.apache.http.protocol.requestuseragent; import org.apache.http.util.entityutils; public class RequestHost { public static void main(string[] args) throws Exception { HttpParams params = new BasicHttpParams(); HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); HttpProtocolParams.setContentCharset(params, "UTF-8"); HttpProtocolParams.setUserAgent(params, "HttpComponents/1.1"); HttpProtocolParams.setUseExpectContinue(params, true); BasicHttpProcessor httpproc = new BasicHttpProcessor(); // Required protocol interceptors httpproc.addinterceptor(new RequestContent()); httpproc.addinterceptor(new RequestTargetHost()); // Recommended protocol interceptors httpproc.addinterceptor(new RequestConnControl()); httpproc.addinterceptor(new RequestUserAgent()); httpproc.addinterceptor(new RequestExpectContinue()); HttpRequestExecutor httpexecutor = new HttpRequestExecutor(); HttpContext context = new BasicHttpContext(null); HttpHost host = new HttpHost("localhost", 50100); DefaultHttpClientConnection conn = new DefaultHttpClientConnection(); ConnectionReuseStrategy connstrategy = new DefaultConnectionReuseStrategy(); Port()); context.setattribute(executioncontext.http_connection, conn); context.setattribute(executioncontext.http_target_host, host); try { String[] targets = { "/", "/servlets-examples/servlet/requestinfoexample", "/somewhere%20in%20pampa"}; for (int i = 0; i < targets.length; i++) { if (!conn.isopen()) { Socket socket = new Socket(host.getHostName(), host.get- conn.bind(socket, params); } BasicHttpRequest request = new BasicHttpRequest("GET", targets[i]); System.out.println(">> Request URI: " + request.getrequest- Line().getUri()); 2007 SAP CE 7.1 Java AS HTTP Client 15 /

context); context.setattribute(executioncontext.http_request, request); request.setparams(params); httpexecutor.preprocess(request, httpproc, context); HttpResponse response = httpexecutor.execute(request, conn, httpexecutor.postprocess(response, httpproc, context); System.out.println("<< Response: " + response.getstatusline()); System.out.println(EntityUtils.toString(response.getEntity()) ); System.out.println("=============="); if (!connstrategy.keepalive(response, context)) { conn.close(); } else { System.out.println("Connection kept alive..."); } } } finally { conn.close(); } } } 2007 SAP CE 7.1 Java AS HTTP Client 16 /

2007 SAP CE 7.1 Java AS HTTP Client 17 /

2007 SAP CE 7.1 Java AS HTTP Client 18 /

2007 SAP CE 7.1 Java AS HTTP Client /