Wednesday 16 August 2017

Flex Http Service Result Binary Options


Tenho claro sobre como usar o serviço HTTP em flex, mas eu quero separar a funcionalidade do serviço de chamadas e obter a resposta do serviço em uma classe do ActionScript diferente. Então, alguém sabe como posso devolver a resposta do serviço HTTP na classe flex IN UTILITY. Eu quero ter um método ao qual eu darei um URL e isso me dará os dados obtidos a partir desse local. É isso aí. Considere o seguinte trecho de código. O código de referência tirado de não poderia ser capaz de criar o serviço http programmiticamente no flex solicitado 14 de janeiro às 14h23. Existem várias soluções, dependendo da arquitetura do seu projeto. A idéia principal é disparar o evento (ou chamar retorno de chamada) quando o serviço receber uma resposta e lidar com o chamador. A maneira mais simples em seu exemplo é retornar o objeto weatherService no método callService e adicionar os mesmos ouvintes no chamador (ResultEvent. RESULT e FaultEvent. FAULT). O menos dessa solução é que você deve analisar a resposta do servidor bruto no chamador em vez de trabalhar com alguns objetos de valor analisados, mas como eu percebi que tudo depende do fluxo de dados do projeto. UPD: o exemplo do uso de retorno de chamada: respondeu 14 de janeiro às 14:40 Obrigado pela resposta. Mas com sua solução também meu problema permanecerá. Eu quero uma classe completamente desacoplada onde eu só tenho que dar ao método o URL (juntamente com outras informações, se houver) a partir do qual ele deve buscar os dados e o método vai me devolver apenas a resposta, nada mais. Se eu for devolver o objeto weatherService, então eu terei que escrever manipuladores no lado do chamador, o que não é que eu quero fazer. Você pode me dar uma dica sobre outras soluções que você está tendo. Ndash ankurtr 15 de janeiro 13 às 10:53 No seu caso, a maneira mais simples de chamar e desbloquear completamente os chamadores e a classe de serviço é criar o evento personalizado, ou seja, ServiceEvent com campos como dados: String e tipos DATA e ERROR, mas esta solução tem falta de solicitação simultânea (Por exemplo, se você chamar callService de diferentes chamadores, o segundo chamador será acionado com dados do primeiro). Este ussie cal será resolvido passando o método do objeto de retorno de chamada do chamador para o callService ou criando um serviço de solicitação separado para cada solicitação) ndash fsbmain Jan 15 13 às 11:44 Eu adicionei alguns comentários e consertei um erro (esqueça de salvar o Função de retorno de chamada no mapa de retorno de chamada). Eu adicionei o mapa de retorno de chamada para armazenar a referência à função de retorno de chamada passada para o método callService. É um tipo de dicionário por causa da capacidade de usar o WeatherService como a chave. Com este código, você pode chamar o callService dos diferentes chamadores, você também pode adicionar outros parâmetros ao método callService para os pedidos de serviço personalizados. Ndash fsbmain Jan 15 13 às 14: 03Accessing visão geral dos serviços de dados Acesso de dados no Flex em comparação com outras tecnologias A maneira como o Flex funciona com fontes de dados e dados é diferente das aplicações que usam o HTML para sua interface de usuário. Processamento do lado do cliente e processamento do lado do servidor Ao contrário de um conjunto de modelos HTML criados usando JSPs e servlets, ASP, PHP ou CFML, o Flex separa o código do cliente do código do servidor. A interface do usuário do aplicativo é compilada em um arquivo SWF binário que é enviado ao cliente. Quando o aplicativo faz uma solicitação para um serviço de dados, o arquivo SWF não é recompilado e nenhuma atualização de página é necessária. O serviço remoto retorna apenas dados. O Flex vincula os dados retornados aos componentes da interface do usuário no aplicativo cliente. Por exemplo, no Flex, quando um usuário clica em um controle Button em um aplicativo, o código do lado do cliente chama um serviço da Web. Os dados do resultado do serviço da Web são retornados no arquivo SWF binário sem uma atualização de página. Assim, os dados do resultado estão disponíveis para usar como conteúdo dinâmico na aplicação. Compare este exemplo de Flex para o seguinte exemplo, que mostra o código JSP para chamar um serviço da web usando uma tag personalizada JSP. Quando um usuário solicita o JSP, a solicitação de serviço da Web é feita no servidor em vez de no cliente. O resultado é usado para gerar conteúdo na página HTML. O servidor do aplicativo regenera toda a página HTML antes de enviá-lo de volta ao navegador da web dos usuários. Acesso à fonte de dados Outra diferença entre o Flex e outras tecnologias de aplicativos da Web é que você nunca se comunica diretamente com uma fonte de dados no Flex. Você usa um componente de acesso a dados para se conectar a um serviço remoto e interagir com a fonte de dados do lado do servidor. O exemplo a seguir mostra uma página ColdFusion que acessa diretamente uma fonte de dados: para obter funcionalidades semelhantes no Flex, use um HTTPService, um serviço da Web ou um componente RemoteObject para chamar um objeto do lado do servidor que retorna os resultados de uma fonte de dados. Eventos, chamadas de serviço e ligação de dados Flex é uma tecnologia orientada a eventos. Uma ação do usuário ou um evento de programa podem ativar o acesso a um serviço. Por exemplo, um usuário clicando em um botão é um evento de ação do usuário que pode ser usado para disparar uma chamada de serviço. Um exemplo de um evento de programa é quando o aplicativo conclui a criação de um componente de interface de usuário, como um DataGrid. O evento createComplete para o DataGrid pode ser usado para chamar um serviço remoto para preencher o DataGrid. As chamadas de serviço no Flex são assíncronas. O aplicativo cliente não precisa aguardar os dados retornados. As chamadas de serviço assíncrono são úteis ao recuperar ou atualizar grandes conjuntos de dados. O aplicativo cliente não está bloqueado esperando que os dados sejam recuperados ou atualizados. Os dados retornados de uma chamada de serviço são armazenados em um CallResponder que você associe à chamada de serviço. Os componentes da interface do usuário, em seguida, usam a ligação de dados para recuperar os dados retornados do CallResponder. A vinculação de dados no Flex permite que você atualize dinamicamente um componente de interface de usuário com uma fonte de dados. Por exemplo, um componente Flex pode associar seu atributo de texto ao atributo lastResult do CallResponder. Quando os dados no CallResponder mudam, o componente Flex atualiza automaticamente. Flex também implementa vinculação de dados bidirecionais. Com ligação de dados bidirecionais, quando as mudanças de dados no componente Flex ou na fonte de dados, a fonte de dados correspondente ou o componente Flex atualizam automaticamente. A ligação de dados bidirecionais é útil quando atualiza dados remotos de entradas de usuário para um componente Form ou um componente de dados Flex. Usando o Flash Builder para acessar serviços de dados No Flex Builder 3, você implementa chamadas de procedimento remoto para serviços de dados usando componentes de acesso a dados Flex. No entanto, o Flash Builder simplifica esse processo. O Flash Builder fornece assistentes e outras ferramentas que: Fornecer acesso a serviços de dados Configurar dados retornados pelo serviço de dados Ajudar na paginação de dados retornados do serviço Auxiliar na funcionalidade de gerenciamento de dados que sincroniza várias atualizações para dados do servidor Gera código de cliente para acessar serviços de dados. Dados retornados do serviço aos componentes da interface do usuário Fluxo de trabalho do Flash Builder para acesso aos serviços Use o seguinte fluxo de trabalho ao usar o Flash Builder para criar um aplicativo que acessa os serviços de dados. Dependendo das suas circunstâncias, você começa conectando-se a um serviço de dados ou criando a interface do usuário. Conecte-se ao serviço remoto. Se você começar conectando-se ao serviço remoto, então você cria a interface do usuário. Crie uma interface de usuário. Se você começar criando a interface do usuário, então você se conecta ao serviço remoto. Nota: Onde você começa é uma questão de preferência pessoal. Por exemplo, se você já possui um projeto de interface de usuário planejado, primeiro você pode criar a interface do usuário. Por outro lado, você pode se conectar aos dados primeiro e deixar o Flash Builder ajudá-lo a gerar componentes de aplicativos. Vincule as operações de dados aos componentes do aplicativo. O Flash Builder fornece várias maneiras de ajudá-lo a vincular as operações de dados aos componentes do aplicativo. Usando o Flash Builder, você pode fazer o seguinte: Gerar vários formulários para dados retornados pelas operações de serviço. Selecione as operações do serviço para se ligar aos componentes da interface do usuário. Gerar um formulário para representar dados complexos retornados por um serviço. (Opcional) Gerencie a recuperação e atualização de dados. As ferramentas do Flash Builder permitem implementar a paginação de dados retornados e coordenar a atualização de conjuntos de dados. Ao retornar registros de dados de grandes quantidades, você geralmente implementa a paginação para recuperar um conjunto de registros, conforme necessário. Para aplicativos que atualizam vários registros, você pode implementar recursos de gerenciamento de dados. Os recursos de Gerenciamento de dados incluem: Comprometer funcionalidade para atualizar registros alterados simultaneamente. Um mecanismo de desfazer para reverter as alterações antes de serem gravadas no servidor. Geração de código que atualiza automaticamente os componentes da interface do usuário à medida que os registros são adicionados, excluídos ou alterados. Execute o aplicativo e monitore o fluxo de dados. . Quando o aplicativo estiver completo, execute o aplicativo para visualizá-lo em operação. Use o Flash Builder Network Monitor para visualizar dados passados ​​entre o aplicativo e o serviço. O Network Monitor é útil para diagnosticar erros e analisar o desempenho. O Flash Builder também fornece ambientes robustos de depuração e criação de perfis. O Monitor de rede eo Flash Profiler estão disponíveis com o Flash Builder Premium. A extensão de serviços suportados pelos criadores e ferramentas do Flash Builder Flash Builder é compatível com o acesso ao seguinte tipo de implementações de serviços: Serviços de dados do LiveCycle Serviços HTTP (estilo REST) ​​Serviços da Web (SOAP) Arquivos estatísticos estáticos Se você precisar de suporte a ferramentas para serviços adicionais, Como Ruby on Rails, você pode estender a implementação do Flash Builder. Consulte Referência de Extensibilidade do Flash Builder. Componentes de acesso a dados Os componentes de acesso a dados permitem que as operações e serviços de chamadas de um aplicativo cliente sejam executados em uma rede. Os componentes de acesso a dados usam chamadas de procedimento remoto para interagir com ambientes de servidor. Os três componentes de acesso a dados são os componentes RemoteObject, HTTPService e WebService. Os componentes de acesso a dados são projetados para aplicativos cliente em que um modelo de chamada e resposta é uma boa opção para acessar dados externos. Esses componentes permitem que o cliente faça solicitações assíncronas para serviços remotos que processam os pedidos e, em seguida, retornem dados para sua aplicação. Um componente de acesso a dados chama um serviço remoto. Em seguida, armazena dados de resposta do serviço em um objeto ActionScript ou em qualquer outro formato que o serviço retorna. Use componentes de acesso a dados no aplicativo cliente para trabalhar com três tipos de serviços: serviços web de serviços remotos (RemoteObject) serviços web (WebService) Serviços HTTP (HTTPService) O Adobe Flash Builder fornece assistentes e ferramentas para envolver a implementação de um componente de acesso a dados em um Embalagem de serviço. O wrapper de serviço encapsula a funcionalidade do componente de acesso a dados, protegendo você de uma grande parte da implementação de nível inferior. Isso permite que você se concentre na implementação de serviços e construção de aplicativos de clientes para acessar os serviços. Para obter mais informações sobre o uso do Flash Builder para acessar os serviços de dados, consulte Criação de aplicativos centrados em dados com o Flash Builder. Fornecer acesso aos serviços Por padrão, o Adobe Flash Player bloqueia o acesso a qualquer host que não seja exatamente igual ao usado para carregar um aplicativo. Se você não usar o Adobe LiveCycle Data Services para solicitações de proxy, um serviço HTTP ou serviço da Web deve estar no servidor que hospeda seu aplicativo, ou o servidor remoto que hospeda o serviço HTTP ou web deve definir um arquivo crossdomain. xml. Um arquivo crossdomain. xml fornece uma maneira para um servidor indicar que seus dados e documentos estão disponíveis para arquivos SWF atendidos em determinados domínios ou em todos os domínios. O arquivo crossdomain. xml deve estar na raiz da web do servidor em que o aplicativo está contatando. Componentes do HTTPService Use os componentes HTTPService para enviar solicitações HTTP GET ou POST e incluir os dados das respostas HTTP em um aplicativo cliente. Se você estiver usando o Flex para criar aplicativos de desktop (é executado no Adobe AIR), HTTP PUT e DELETE são suportados. Se você usa o Adobe LiveCycle Data Services ou o BlazeDS, você pode usar um HTTPProxyService, que permite que você use métodos HTTP adicionais. Com um HTTPProxyService, você pode enviar pedidos GET, POST, HEAD, OPTIONS, PUT, TRACE ou DELETE. Um serviço HTTP pode ser qualquer URI HTTP que aceita pedidos HTTP e envia respostas. Outro nome comum para este tipo de serviço é um serviço web de estilo REST. REST representa a Representational State Transfer e é um estilo arquitetônico para sistemas hipermídia distribuídos. Os componentes do HTTPService são uma boa opção quando você não pode expor a mesma funcionalidade que um serviço da Web SOAP ou um serviço de objetos remotos. Por exemplo, você pode usar os componentes HTTPService para interagir com JavaServer Pages (JSPs), servlets e páginas ASP que não estão disponíveis como serviços da Web ou destinos do serviço Remoting. Quando você chama o método de envio de objetos HTTPService (), faz uma solicitação HTTP para o URI especificado e uma resposta HTTP é retornada. Opcionalmente, você pode passar argumentos para o URI especificado. O Flash Builder fornece fluxos de trabalho que permitem conectar-se interativamente aos serviços HTTP. Para obter mais informações, consulte Acessando serviços HTTP. Componentes do WebService Os componentes do WebService permitem acessar os serviços da Web SOAP, que são módulos de software com métodos. Os métodos de serviço da Web são comumente chamados de operações. As interfaces de serviço da Web são definidas usando Web Services Description Language (WSDL). Os serviços da Web fornecem uma maneira compatível com padrões para módulos de software que estão sendo executados em várias plataformas para interagir uns com os outros. Para obter mais informações sobre serviços da Web, consulte a seção de serviços da web do site do World Wide Web Consortium em w3.org 2002 ws. Os aplicativos de cliente podem interagir com serviços da Web que definem suas interfaces em um documento WSDL (Web Services Description Language), que está disponível como URL. O WSDL é um formato padrão para descrever as mensagens que um serviço da Web entende, o formato de suas respostas a essas mensagens, os protocolos que o serviço web suporta e onde enviar mensagens. Flex suporta WSDL 1.1, que é descrito em w3.org TR wsdl. O Flex suporta os serviços web codificados RPC e documentais. O Flex suporta solicitações de serviço web e resultados formatados como mensagens SOAP e são transportados por HTTP. O SOAP fornece a definição do formato baseado em XML que você pode usar para trocar informações estruturadas e digitadas entre um cliente de serviço da Web, como uma aplicação criada com o Flex e um serviço da Web. Você pode usar um componente WebService para se conectar a um serviço web compatível com SOAP quando os serviços da Web são um padrão estabelecido em seu ambiente. Os componentes do WebService também são úteis para objetos que estão dentro de um ambiente corporativo, mas não necessariamente disponíveis no caminho de origem do aplicativo da Web. O Flash Builder fornece fluxos de trabalho que permitem conectar-se interativamente aos serviços da Web. Para obter mais informações, consulte Acessando serviços da Web. Componentes RemoteObject Os serviços de objetos remotos permitem que você acesse a lógica comercial diretamente no formato nativo, em vez de formatá-la como XML, como você faz com serviços de estilo REST ou serviços da Web. Isso economiza o tempo necessário para expor a lógica existente como XML. Outro benefício dos serviços de objetos remotos é a velocidade de comunicação através do fio. As trocas de dados ainda ocorrem por HTTP ou https, mas os dados em si são serializados em uma representação binária. O uso de componentes RemoteObject resulta em menos dados através do fio, uso reduzido da memória do lado do cliente e tempo de processamento reduzido. ColdFusion, PHP, BlazeDS e Adobe LiveCycle Data Services podem usar a digitação do lado do servidor ao acessar dados no servidor. O aplicativo cliente acessa um objeto Java, o componente ColdFusion (que é um objeto Java internamente) ou a classe PHP diretamente pela invocação remota de um método em um objeto designado. O objeto no servidor usa seus próprios tipos de dados nativos como argumentos, consulta um banco de dados com esses argumentos e retorna valores em seus tipos de dados nativos. Quando a digitação do lado do servidor não está disponível, o Flash Builder possui ferramentas para implementar a digitação do lado do cliente. Use o Flash Builder para configurar e definir tipos de dados retornados do serviço. A digitação do lado do cliente permite ao aplicativo cliente consultar um banco de dados e recuperar dados corretamente digitados. A digitação do lado do cliente é necessária para qualquer serviço que não defina o tipo de dados retornados pelo serviço. O Flash Builder fornece fluxos de trabalho que permitem conectar-se interativamente aos serviços de objetos remotos. Para obter mais informações, consulte Conexão a serviços de dados. Mais tópicos da Ajuda

No comments:

Post a Comment