JSON + VB6

JONHWELL 10/12/2015 15:55:51
#454983
Boa tarde,
Gostaria de saber se alguem ja enviou uma requisicao json por vb6, se sim.. como fazer?
KERPLUNK 10/12/2015 16:05:42
#454984
Resposta escolhida
Você quer dizer fazer um post/put de uma WebAPI usando o VB6, isso?
JONHWELL 10/12/2015 16:08:10
#454985
Isso mesmo, eu tenho que chamar um endereço php e passar os parametros que seram interpretados no JSON
JONHWELL 10/12/2015 16:39:40
#454991
Consegui explicar direito? Fato que tenho que enviar uma linha JSON para um endereço. Quero saber como faço via vb no php eu ja fiz.
KERPLUNK 10/12/2015 16:43:13
#454992
Em primeiro lugar, o que você quer fazer é algo muito contraproducente, mas sim, é possível. Você vai usar a referência da biblioteca MSXML então certifique-se de que ela esteja presente e registrada na máquina que vai rodar o código, que seria algo como:

Dim sUrl As String
Dim response As String
Dim xmlhttp

Set sUrl = [Ô]http://www.asdrubalcorp/api/operation[Ô]

Set xmlhttp = Server.CreateObject([Ô]MSXML2.ServerXMLHTTP[Ô])
xmlhttp.open [Ô]POST[Ô], sURL, False
xmlhttp.setRequestHeader [Ô]Content-Type[Ô], [Ô]application/x-www-form-urlencoded[Ô]
xmlhttp.send()

Dim response As String = xmlhttp.responseText

Set xmlhttp = Nothing
JONHWELL 10/12/2015 16:50:03
#454995
Certo, tens uma maneira melhor de fazer isso? é que eu preciso integrar com um parceiro e minha aplicação é em vb6 e o parceiro só aceita requisiçoes em JSON, entao por exemplo preciso mandar os dados como isso:

<?php
$url = [Ô]http://xxx/webapi/api/[Ô];
$data = array(
[Ô]service[Ô] => [Ô]Automation[Ô],
[Ô]clientid[Ô] => [Ô]1080[Ô],
[Ô]eventid[Ô] => [Ô]239876[Ô],
[Ô]returnurl[Ô] => [Ô]le.php[Ô]
);
KERPLUNK 10/12/2015 17:26:37
#454996
Se você precisa que seja um script php mesmo, aí o VB6 não vai poder te ajudar...
Mas o que te passei, é perfeitamente possível de ser usado e vai ter o mesmo resultado, você vai postar os dados que é o conteúdo de [Ô]$data[Ô]
JONHWELL 10/12/2015 17:37:13
#454998
Pode ser do primeiro jeito mesmo, so nao entendi onde vou por as variaveis ali... tenho que referenciar alguma biblioteca especifica?
KERPLUNK 10/12/2015 17:42:51
#454999
Do jeito que passei não precisa referenciar, pois estou usando o [Ô]CreateObject[Ô], mas ela deve existir. Os dados, você passa no comando send:

Dim sUrl As String
Dim response As String
Dim xmlhttp

Set sUrl = [Ô]http://www.asdrubalcorp/api/operation[Ô]

Set xmlhttp = Server.CreateObject([Ô]MSXML2.ServerXMLHTTP[Ô])
xmlhttp.open [Ô]POST[Ô], sURL, False
xmlhttp.setRequestHeader [Ô]Content-Type[Ô], [Ô]application/x-www-form-urlencoded[Ô]

dados = [Ô]{[Ô] + chr(34) + [Ô]service[Ô] +chr(34)+[Ô] = [Ô] + chr(34) + [Ô]Automation[Ô] + chr(34) + [Ô], [Ô]clientid[Ô] + chr(34) + [Ô] = [Ô] + chr(34) + [Ô]1080[Ô] + chr(34) + [Ô], + chr(34) + [Ô]eventid[Ô] + chr(34) + [Ô] = [Ô] + chr(34) + [Ô]239876[Ô] + chr(34) + [Ô],[Ô] + chr(34) + [Ô]returnurl[Ô]+ chr(34) + [Ô] = [Ô] + chr(34) + [Ô]le.php[Ô]+ chr(34) + [Ô]}[Ô]

xmlhttp.send dados

Dim response As String = xmlhttp.responseText

Set xmlhttp = Nothing


OBS: A string dos dados, fiz a mão meio que na pressa, você precisa conferir se ela fica igual aos dados que você quer, incluindo as aspas dentro dela.
JONHWELL 10/12/2015 17:56:21
#455002
Não ta nem achando o Server... Tu ta usando vb6 tambem né?
KERPLUNK 10/12/2015 18:03:29
#455004
Não estou usando nada, estou escrevendo o código à mão. Se não está achando o server verifique a URL...
Foi por isso que eu disse que VB6 para esse tipo de tarefa é contraproducente, ele não foi projetado para fazer esse tipo de coisa. Seria muito melhor você usar o .NET para isso. Com ele, tanto os objetos de envio corretos(HttpClient) e classes para serialização estão disponíveis de forma nativa.
Página 1 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas