JSON + VB6
Boa tarde,
Gostaria de saber se alguem ja enviou uma requisicao json por vb6, se sim.. como fazer?
Gostaria de saber se alguem ja enviou uma requisicao json por vb6, se sim.. como fazer?
Você quer dizer fazer um post/put de uma WebAPI usando o VB6, isso?
Isso mesmo, eu tenho que chamar um endereço php e passar os parametros que seram interpretados no JSON
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.
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
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[Ô]
);
<?php
$url = [Ô]http://xxx/webapi/api/[Ô];
$data = array(
[Ô]service[Ô] => [Ô]Automation[Ô],
[Ô]clientid[Ô] => [Ô]1080[Ô],
[Ô]eventid[Ô] => [Ô]239876[Ô],
[Ô]returnurl[Ô] => [Ô]le.php[Ô]
);
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[Ô]
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[Ô]
Pode ser do primeiro jeito mesmo, so nao entendi onde vou por as variaveis ali... tenho que referenciar alguma biblioteca especifica?
Do jeito que passei não precisa referenciar, pois estou usando o [Ô]CreateObject[Ô], mas ela deve existir. Os dados, você passa no comando send:
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.
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.
Não ta nem achando o Server... Tu ta usando vb6 tambem né?
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.
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.
Tópico encerrado , respostas não são mais permitidas