miguel5655 Posted May 30, 2014 at 02:22 PM Report #557679 Posted May 30, 2014 at 02:22 PM Boa tarde. Tenho algumas dúvidas em como utilizar json e um webService. Ora, eu uso uma aplicação de gestão de projectos, que por sua vez posso para um projecto fazer um POST a um Web Service enviando o objecto (do projecto) em Json. A sintaxe do url para passar o objecto como fica?? Do género, eu tenho isto: http://192.***.*.**/Json/JsonWebService.asmx?op=HelloWorld . Teria de adicionar algo, para passar no URL o objecto?? Desculpem a minha ignorância mas não sei bem como fazer. Ao invocar o web Service assim estou a passar o objecto em Json?? Do lado do WebService, como exemplo este método HelloWorld recebe por parametro um Object, penso que assim não existirá problemas. Depois é só usar o Json.Deserializer e fazer o que pretendo. Alguém me consegue dar umas ideias. Se estou no caminho certo, ou completamente no sentido oposto?? Obrigado
bioshock Posted May 30, 2014 at 02:28 PM Report #557681 Posted May 30, 2014 at 02:28 PM (edited) Bem, como eu trabalho com webservices diariamente essa não costuma ser a solução, mas também depende do webservice..eu só tenho trabalhado com SOAP. Por norma o webservice tem os métodos criados, o que significa que tens de aceder a esses métodos pela via de código e não de url. Edit: Já agora, adicionaste a referência do webservice ao projecto? Edited May 30, 2014 at 02:29 PM by bioshock
miguel5655 Posted May 30, 2014 at 03:52 PM Author Report #557702 Posted May 30, 2014 at 03:52 PM (edited) Bem, como eu trabalho com webservices diariamente essa não costuma ser a solução, mas também depende do webservice..eu só tenho trabalhado com SOAP. Por norma o webservice tem os métodos criados, o que significa que tens de aceder a esses métodos pela via de código e não de url. Edit: Já agora, adicionaste a referência do webservice ao projecto? Pois, vou ter de estudar melhor isto, pois não fui eu a desenvolver o Web Service. Sendo .asmx posso dizer que é Soap certo?? Para usar "Post", terá de ser um Web Service REST?? Sendo SOAP eu preciso adicionar a referência ao webService no projecto, não é?? É que a aplicação de gestão de projectos é Web, portanto não tenho hipotese de adicionar referências, nem editar, portanto tenho de utilizar REST certo?? Sei que são perguntas descabidas, mas preciso de alguma ajuda. A ideia é por exemplo, ao alterar o workflow do projecto para o estado "Review", fazer o "Post" ao Web Service, e realizar uma série de operações, do género, uma query á bd e enviar esses resultados por email. Isto é um exemplo, pois aí eu desenrrasco-me, falta-me é a parte de ligação entre a aplicação de gestão de projectos e o webService. Edited May 30, 2014 at 03:54 PM by miguel5655
bioshock Posted May 30, 2014 at 04:52 PM Report #557707 Posted May 30, 2014 at 04:52 PM (edited) Nem tinha reparado no teu url no seu todo. Não é SOAP. Para ser SOAP teria de ser (tanto quanto sei) WCF. O ASMX só funciona nos servidores IIS e por sua vez só por request de HTTP. Para ser um Webservice REST, precisa, acho eu, de ser WCF. Não te consigo ajudar porque nunca trabalhei com ASMX. 😕 Edit: melhor explicação. Edited May 30, 2014 at 04:54 PM by bioshock
bruno1234 Posted May 30, 2014 at 06:00 PM Report #557710 Posted May 30, 2014 at 06:00 PM O asmx aceita pedidos soap e post, para serem via post tens que activar no web.config essa opção. Na net existem exemplos de como o fazer. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos
miguel5655 Posted May 31, 2014 at 08:20 PM Author Report #557749 Posted May 31, 2014 at 08:20 PM O asmx aceita pedidos soap e post, para serem via post tens que activar no web.config essa opção. Na net existem exemplos de como o fazer. Obrigado pelas respostas. Ok, o que já está desenvolvido é .asmx, portanto vou tentar reaproveitar então. Pelo menos já sei que posso usar o .asmx e tenho de alterar o WebService. Agora o que eu não sei exactamente é como é que é passado o objecto em json. É a propria aplicação web de gestão de projectos que faz isso. Eu só tenho de pôr o URL para fazer o POST. O url que eu tenho para chamar o web service é algo deste género: http://192.***.*.**/Json/JsonWebService.asmx?op=HelloWorld . O HelloWorld é a função. Penso que tenho de alterar o url, mas não sei exactamente como é o url. Obrigado pelas dicas.
nelsonr Posted May 31, 2014 at 08:35 PM Report #557750 Posted May 31, 2014 at 08:35 PM Boas, acedendo ao endereço do webservice com o browser (pagina.asmx?op=funcao), não te aparece a estrutura do request e resposta? Caso apareca, podes mostrar? Já adicionaste o webservice ao teu projecto? Normalmente adiicono à moda antiga, pelo Add service reference / Advanced / Add Web Reference e coloco o endereço do asmx. Quando fizeres isto, terás uma definição no teu projecto que permite criar um objecto com as funções disponibilizadas pelo webservice. Usas essas funções como se fosse uma função local
miguel5655 Posted June 2, 2014 at 03:25 PM Author Report #557923 Posted June 2, 2014 at 03:25 PM Boas, acedendo ao endereço do webservice com o browser (pagina.asmx?op=funcao), não te aparece a estrutura do request e resposta? Caso apareca, podes mostrar? Já adicionaste o webservice ao teu projecto? Normalmente adiicono à moda antiga, pelo Add service reference / Advanced / Add Web Reference e coloco o endereço do asmx. Quando fizeres isto, terás uma definição no teu projecto que permite criar um objecto com as funções disponibilizadas pelo webservice. Usas essas funções como se fosse uma função local Boas pessoal. Voltei á luta. Recaputilando, agora sei que o .ASMX aceita pedidos "Post" e preciso de configurar isso no Web.Config. Quanto a adicionar o WebService ao projecto não é assim tão simples. Esta aplicação que vai chamar o webService, é uma aplicação Web, desenvolvida pela Axosoft, mais concretamente é o OnTime. Não sei se alguma vez alguém utilizou. Portanto eu não consigo abrir a aplicação e fazer esses passos, para adicionar a referência ao WebService, ou mesmo invocar funções através do código. Não sei se me estou a fazer entender. Mas do género, o OnTime foi desenvolvido por uma empresa externa, logo eu não consigo nem alterar o source dele, nem adicionar a referência ao WebService dessa forma. Vou colocar aqui a estrutura do Request e Response. SOAP 1.1 Request POST /Json/JsonWebService.asmx HTTP/1.1 Host: 192.168.1.19 Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://localhost/HelloWorld" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <HelloWorld xmlns="http://localhost/"> <task /> </HelloWorld> </soap:Body> </soap:Envelope> Response HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <HelloWorldResponse xmlns="http://localhost/"> <HelloWorldResult>string</HelloWorldResult> </HelloWorldResponse> </soap:Body> </soap:Envelope> Obrigado, e se alguém me souber ajudar e dar novas ideias é sempre bem vindo.
miguel5655 Posted June 3, 2014 at 08:00 AM Author Report #558028 Posted June 3, 2014 at 08:00 AM Ninguém com alguma experiência que me consiga dar umas ideias e ajudar?? Obrigado
miguel5655 Posted June 4, 2014 at 02:44 PM Author Report #558215 Posted June 4, 2014 at 02:44 PM Boas pessoal. O que ainda me está a fazer confusão é a ligação entre a plataforma e o meu Web Service. Não sei, como é que é passado o objecto. Ou seja tenho o URL para o meu Web Service, mas tal como indico a operação que pretendo que faça, neste caso HelloWorld, não sei como ficaria o URL para passar por parametro o objecto em Json. Obrigado
bioshock Posted June 4, 2014 at 02:46 PM Report #558218 Posted June 4, 2014 at 02:46 PM Edit: Já agora, adicionaste a referência do webservice ao projecto? http://msdn.microsoft.com/en-us/library/ywx7tzs7(v=vs.90).aspx
miguel5655 Posted June 4, 2014 at 03:34 PM Author Report #558223 Posted June 4, 2014 at 03:34 PM (edited) http://msdn.microsoft.com/en-us/library/ywx7tzs7(v=vs.90).aspx Boas. O link que colocas-te não consigo abrir. Eu não posso chamar as funções do Web Service por código ou adiconar a referência ao WebService, senão aí eu sabia como fazer. Isto é uma aplicação Web desenvolvida por terceiros, imagina o Jira ou outro software qualquer de gestão de projectos. Ou seja eu não tenho o source, nem a solução da aplicação, somente posso usar os recursos disponibilizados por eles. Neste caso preciso de fazer o Post a um WebService, enviando o objecto do projecto que eu seleciono no formato Json, para realizar uma série de tarefas. Obrigado Edited June 4, 2014 at 03:34 PM by miguel5655
bioshock Posted June 4, 2014 at 04:29 PM Report #558229 Posted June 4, 2014 at 04:29 PM Copia o link e cola no browser.
miguel5655 Posted June 4, 2014 at 04:56 PM Author Report #558231 Posted June 4, 2014 at 04:56 PM Copia o link e cola no browser. Ok, já consegui ver. Mas se reparares eu não tenho o projeto, da aplicação de gestão de projectos. A aplicação está a correr no IIS, mas eu não a posso abrir no Visual Studio, porque não a tenho... Além disso a tua ideia era eu chamar as funções do WebService por código certo??
bioshock Posted June 4, 2014 at 05:35 PM Report #558233 Posted June 4, 2014 at 05:35 PM Então tu não tens o Visual Studio?
miguel5655 Posted June 4, 2014 at 10:22 PM Author Report #558254 Posted June 4, 2014 at 10:22 PM Então tu não tens o Visual Studio? Ora bem, eu tenho o visual studio mas posso ser eu que estou mesmo a leste, mas é assim, nós compramos as licenças para X utilizadores na nossa empresa puderem utilizar a aplicação. Fizemos o download da aplicação e instalamos e está pronta a funcionar. Nós não temos o source ou a solução, portanto não posso abrir a aplicação em nenhum IDE. É o mesmo que tu comprares uma aplicação sem o código fonte e quereres alterar a teu gosto e quereres abrir no visual studio. Mas posso estar a ver isto errado, e posso não estar a entender a tua ideia.
nelsonr Posted June 4, 2014 at 11:12 PM Report #558257 Posted June 4, 2014 at 11:12 PM Então, mas queres alterar como, se não tens a source? Tinha percebido que estavas a criar uma aplicação nova para comunicar com o webservice. Se não estás a criar uma aplicação, queres fazer o que?
miguel5655 Posted June 5, 2014 at 09:41 AM Author Report #558265 Posted June 5, 2014 at 09:41 AM Então, mas queres alterar como, se não tens a source? Tinha percebido que estavas a criar uma aplicação nova para comunicar com o webservice. Se não estás a criar uma aplicação, queres fazer o que? É assim, eu não quero nem posso alterar a aplicação web de gestão de projectos é uma plataforma feita por terceiros. O que eu quero e pretendo é utilizar uma funcionalidade da própria plataforma para fazer uma série de procedimentos que eu quero. Do género: a aplicação permite alterar um projecto para um estado "review" por exemplo. Ao alterar para este estado eu quero inserir algo numa tabela e por exemplo gerar um excel e enviar por email. A unica forma que a plataforma (aplicação web), me oferece para fazer isto é fazer um POST a um URL, e partir daqui faço o que eu quiser. Ora, as minhas dúvidas começam por saber se é possível ou não usar um WebService .ASMX, e como obtenho os dados do objecto em Json do lado do WebService...
nelsonr Posted June 5, 2014 at 09:45 AM Report #558266 Posted June 5, 2014 at 09:45 AM Ou seja, tens uma aplicação web a correr numa maquina e oferece serviços por webservice (.asmx), correcto? Caso seja isso, deves ter essa aplicação com algo como http://sevidor/aplicacao/servico.asmx, correcto? Estás a pretender criar uma nova aplicação que faça uso desse serviço, correcto?
miguel5655 Posted June 5, 2014 at 10:08 AM Author Report #558274 Posted June 5, 2014 at 10:08 AM Ou seja, tens uma aplicação web a correr numa maquina e oferece serviços por webservice (.asmx), correcto? Caso seja isso, deves ter essa aplicação com algo como http://sevidor/aplicacao/servico.asmx, correcto? Estás a pretender criar uma nova aplicação que faça uso desse serviço, correcto? Acho que não entendes-te. Eu tenho uma aplicação Web a correr numa máquina. Essa aplicação permite fazer um POST a um URL, quando alterado o estado de um projeto. Eu pretendo utilizar é esta funcionalidade da plataforma/aplicação web para fazer uma série de procedimentos. O WebService .asmx fui eu que criei, para fazer o que pretendo. Ou seja. a única coisa que eu criei foi o webService .asmx com uma série de operações para fazer o que pretendo, não é a aplicação web que oferece serviços por webService. O que a aplicação web oferece é quando eu altero o estado de um projeto, fazer um Post a um URL e nesse post ao URL fazer o que eu quero. Primeiro não tenho a certeza se posso fazer um post para um webService .asmx, e depois não sei como é que eu obtenho o objecto do lado do WebService. Espero ter-me feito entender. Obrigado
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now