Jump to content
s3c0

Webservice JSON + ASP

Recommended Posts

Fala pessoal,

 

estou com um probleminha com uma integração, onde preciso ler um resposta JSON em ASP Clássico.

 

a resposta é

 

{"id":1,"name":"PAC","price":"45.65","custom_price":"45.65","discount":"7.41","currency":"R$","delivery_time":8,"delivery_range":{"min":8,"max":8},"custom_delivery_time":8,"custom_delivery_range":{"min":8,"max":8},"packages":{"price":"45.65","discount":"7.41","format":"box","dimensions":{"height":20,"width":20,"length":20},"weight":"1.00","insurance_value":"1000.00","products":{"id":"teste1","quantity":1}},"additional_services":{"receipt":true,"own_hand":false,"collect":false},"company":{"id":1,"name":"Correios","picture":"https:\/\/sandbox.melhorenvio.com.br\/images\/shipping-companies\/correios.png"}},{"id":2,"name":"EXPRESSO","price":"68.51","custom_price":"68.51","discount":"11.95","currency":"R$","delivery_time":5,"delivery_range":{"min":5,"max":5},"custom_delivery_time":5,"custom_delivery_range":{"min":5,"max":5},"packages":{"price":"68.51","discount":"11.95","format":"box","dimensions":{"height":20,"width":20,"length":20},"weight":"1.00","insurance_value":"1000.00","products":{"id":"teste1","quantity":1}},"additional_services":{"receipt":true,"own_hand":false,"collect":false},"company":{"id":1,"name":"Correios","picture":"https:\/\/sandbox.melhorenvio.com.br\/images\/shipping-companies\/correios.png"}},{"id":3,"name":".Package","price":"33.51","custom_price":"33.51","discount":"15.58","currency":"R$","delivery_time":6,"delivery_range":{"min":5,"max":6},"custom_delivery_time":6,"custom_delivery_range":{"min":5,"max":6},"packages":{"format":"box","dimensions":{"height":20,"width":20,"length":20},"weight":"1.00","insurance_value":"1000.00","products":{"id":"teste1","quantity":1}},"additional_services":{"receipt":true,"own_hand":false,"collect":false},"company":{"id":2,"name":"JadLog","picture":"https:\/\/sandbox.melhorenvio.com.br\/images\/shipping-companies\/jadlog.png"}},{"id":4,"name":".Com","price":"32.63","custom_price":"32.63","discount":"26.48","currency":"R$","delivery_time":5,"delivery_range":{"min":4,"max":5},"custom_delivery_time":5,"custom_delivery_range":{"min":4,"max":5},"packages":{"format":"box","dimensions":{"height":20,"width":20,"length":20},"weight":"1.00","insurance_value":"1000.00","products":{"id":"teste1","quantity":1}},"additional_services":{"receipt":true,"own_hand":false,"collect":false},"company":{"id":2,"name":"JadLog","picture":"https:\/\/sandbox.melhorenvio.com.br\/images\/shipping-companies\/jadlog.png"}}

 

Tenho a seguinte página para receber essa resposta

 

<!--#include file="includes/json2.asp"-->
<%

  Dim objXML, Result
Set objXML = Server.CreateObject("Microsoft.XMLHTTP")
On Error Resume Next
For i = 1 To 3
  objXML.Open "POST" , url, False , "", ""
  objXML.setRequestHeader "content-type", "application/json"
  objXML.setRequestHeader "accept", "application/json"
  objXML.setRequestHeader "authorization", "Bearer " & Bearer
  objXML.Send variavel_json
  If Err.Number = 0 Then
    Result = objXML.ResponseText
  end if
 Exit For
Next

Set objXML = Nothing
  
Result = replace(replace(Result,"[",""),"]","")
  
  a=Split(Result,".png""}},")
  
For Each x In a
	set x = JSON.parse(Result)
    Response.write(x.name & vbNewline)
	Response.write(x.price & vbNewline)
	Response.write(x.delivery_time & vbNewline)
	Response.write(x.company.name & vbNewline)
Next
   
   
   
%>

O que ocorre, é que imprimi somente a última linha

 

Print

.Com 32.63 5 JadLog .Com 32.63 5 JadLog .Com 32.63 5 JadLog .Com 32.63 5 JadLog

 

 

Alguém poderia me dizer onde estou errando?

 

Agradeço a atenção de todos!

 

Abraços

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Filhote de Dev
      Estou fazendo um requisição HTTP e de retorno recebo um Json! Então eu quero pegar esse valor de Json e atribuir a outra variável para poder modificá-la e depois exibir as duas lado a lado para comparar. Então me deparei com 2 problemas o primeiro é que não estou conseguindo atribuir o valor httpRequest.responseText a uma variável, já tentei a função eval() e a toString() e quando eu peço para printar com um alert() para verificar me retorna undefined o segundo problema é que eu estava exibindo o resultado na dom por meio de appendChild(), estou exibindo apenas com os valores originais para teste, mas quando ele executa esse trexo do code, ele printa na dom e logo em seguida retira da dom, tipo uma piscadinha rápida. Ficaria grato se me ajudassem a resolver esse problema.
       
      o Json que ele recebe de uma pagina .html é esse:
      {"numero_casas":9,"token":"68c56aa784fe216ae92720b76386ea0995055074","cifrado":"fqnw rw mxdkc, unjen rc xdc. sxbqdj kuxlq","decifrado":"","resumo_criptografico":""}  
      o Script esta assim:
      var httpRequest function request(){ var url = 'test.html'//apagar depois if (window.XMLHttpRequest) { // Mozilla, Safari, ... httpRequest = new XMLHttpRequest() } else if (window.ActiveXObject) { // IE try { httpRequest = new ActiveXObject("Msxml2.XMLHTTP") } catch (e) { try { httpRequest = new ActiveXObject("Microsoft.XMLHTTP") } catch (e) {} } } if (!httpRequest) { alert('Giving up :( Cannot create an XMLHTTP instance') return false } httpRequest.onreadystatechange = alertContents httpRequest.open('GET', url, true) httpRequest.responseType = 'jason' httpRequest.send() httpRequest.onload = function(){ view(httpRequest) } } function alertContents() { if (httpRequest.readyState === 4) { if (httpRequest.status === 200) { alert(httpRequest.responseText) } else { alert('There was a problem with the request.') } } } function view(httpRequest){ var resposta = httpRequest.responseText.toString() alert(resposta.value) var box = document.querySelector('div#decoding') box.setAttribute('class', 'shadow') var challenge = document.createElement('fieldset') challenge.setAttribute('class', 'painting') var legendChallenge = document.createElement('legend') legendChallenge.innerHTML = 'Challenge' challenge.innerHTML = `Número de casas: ${httpRequest.response.numero_casa}<br> Token: ${httpRequest.response.token}<br> Cifrado: ${httpRequest.response.cifrado}<br> Decifrado: ${httpRequest.response.decifrado}<br> Resumo Criptografico: ${httpRequest.response.resumo_criptografico}` var answer = document.createElement('fieldset') answer.setAttribute('class', 'painting') var legendAnswer = document.createElement('legend') legendAnswer.innerHTML = 'Answer' answer.innerHTML = `Número de casas: ${httpRequest.response.numero_casas}<br> Token: ${httpRequest.response.token}<br> Cifrado: ${httpRequest.response.cifrado}<br> Decifrado: ${httpRequest.response.decifrado}<br> Resumo Criptografico: ${httpRequest.response.resumo_criptografico}` box.appendChild(challenge) box.appendChild(answer) challenge.appendChild(legendChallenge) answer.appendChild(legendAnswer) }  
       
      Index.html:
      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <link rel="stylesheet" href="style.css"> <title>Caesar cipher</title> </head> <body> <header> <h1>Caesar cipher</h1> </header> <section> <div class="container"> <div class="box"> <div class="form"> <form action=""> <div> <fieldset class="shadow"> <legend><h1>Decoding</h1></legend> <button id="btntoken" onclick="request()">Fetch Encryption Challenge</button> </fieldset> </div> <div id="decoding" class="aling"></div> </form> </div> </div> </div> </section> <footer> </footer> <script type="text/javascript" src="script.js"></script> </body> </html>  
       
      e o style.css para dar sentido as class:
      /*zerando margein e padding de todos os elementos*/ *{ margin: 0; padding: 0; } /*definido estilo padrão*/ body{ font-family: 'Courier New', Courier, monospace; font-size: 16px; background-color: #F5F6FA; } /*Estilização e alinhamento do cabeçario*/ header{ background-color: #22212F; color: #FFF; height: 80px; font-size: 24px; align-items: center; display: flex; padding-left: 15px; } /*Alinhamento das tags presentes na section*/ section,div.form{ display: flex; justify-content: center; } div.container{ margin:5px; width: 800px; background-color: #FFF; padding: 15px; margin-top: 20px; } div.parag,div.box{ display: block; } div.form{ margin-top:30px; } p{ margin-top: 10px; } /*estilização do formulario principal*/ .shadow{ box-shadow: 5px 5px 5px 2px #22212F; } fieldset{ width: 500px; min-height:150px; padding: 10px; } legend{ font-size: 20px; } input#token{ font-size: 16px; width: 350px; height: 30px; } button#btntoken{ margin: 5px; margin-top:15px; width:480px; height: 50px; font-size: 24px; } /*estilização da resposta ao usuário*/ .aling{ margin: 20px; } .painting{ display: inline-block; width: 230px; min-height: 100px; }
    • By asacap1000
      Galera estou com um problema, não sei como montar a estrura para receber os dados vindo deste script e salvar no banco de dados.
      Se alguem puder me dar uma força, pelo menos como montar essa estrutura já vai ajudar muito.
       
      Segue script de envio.
      <?php $charSet = "UTF-8"; $mediaType = "application/json"; //header("Content-Type: ".$mediaType); //Configuracoes do sistema $url_integra_aurora = 'http://webservice.test/verify.php';////INFORMAR O LINK QUE SERÁ SOLICITADO NO ENVIO DOS DADOS //receber neste campo todos os dados via POST////// /////ABAIXO INSERIR OS DADOS DO POST EM UMA ARRAY///// $contatos = array( 'nome'=>urlencode("Ricardo"), 'idade'=>urlencode("4321"), 'email'=>urlencode("ricardo@mane.com"), 'telefone'=>urlencode("666-999") ); /////APÓS RECEBER LANÇAR OS DADOS EM UMA ARRAY ABAIXO SERÁ CODFICADO PARA JSON $data_post = json_encode($contatos); $url = $url_integra_aurora.""; $Datasecurity = date('Ymd'); ///ASSIM SEERÁ GERADA UMA CHAVE POR DIA $SecurityId = $Datasecurity.':'.'CNPJ'; ////ADICIONA A DATA UMA IDENTIFICAÇÃO DA EMRPESA NESTE CASO CNPJ $SecurityKey = "d1ZLpLQRGyb-h6ZEqnbhlS23WjBWl_hUGpB615sKGfw"; ////CHAVE DE SEGURANÇA SECUNDÁRIA FIXA $headers = array(); $headers[] = "Accept: ".$mediaType; $headers[] = "Accept-Charset: ".$charSet; $headers[] = "Accept-Encoding: ".$mediaType; $headers[] = "Content-Type: ".$mediaType.";charset=".$charSet; $AuthorizationHeader = $SecurityId.":".$SecurityKey; //// CHAVE DE SEGURANÇA GERADA DIARIAMENTE JUNTO COM CHAVE DE SEGURANÇA FIXA $AuthorizationHeaderBase64 = base64_encode($AuthorizationHeader); // APÓS JUNTAR AS CHAVES ELAS SÃO CODIFICADAS EM HASH BASE64 E ENVIADAS PARA O SERVIDOR VALIDAR $headers[] = "Authorization: Basic ".$AuthorizationHeaderBase64; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_post); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); $result2 = json_decode($result,true); var_dump($result2); curl_close($ch); ?>  
    • By portallweb
      Bom dia, pessoal.
       
      A questão é que eu consigo acessar um endereço "dominio.com/modulo/id/titulo" e ele reescrever para "dominio.com/default.asp?link=artigo&id=123&titulo=teste", mas minha dúvida é se consigo fazer o processo reverso, ou seja, acessar "dominio.com/default.asp?link=artigo&id=123&titulo=teste" e ele alterar para "dominio.com/modulo/id/titulo".
       
      Códigos:
       
      WEB.CONFIG
       
      <?xml version="1.0" encoding="UTF-8"?> <system.webServer>     <rewrite>         <rules>             <rule name="artigo" stopProcessing="true">                 <match url="^artigo/?([a-zA-Z0-9_-]+)?/?([a-zA-Z0-9_-]+)?/?([a-zA-Z0-9_-]+)?$" />                 <conditions>                      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />                      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />                  </conditions>                 <action type="Rewrite" url="default.asp?link={R:0}&id={R:1}&teste={R:2}" />             </rule>         </rules>     </rewrite> </system.webServer>  
      ASP
       
      <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="utf-8"/> <title>Teste Isapi Rewrite</title> </head> <body> <p> Teste!<br> link: <%=request("link")%><br> id: <%=request("id")%><br> teste: <%=request("teste")%><br> </p> </body> </html>  
      Desde já agradeço!
    • By jotapems
      Bom dia,
      estou tentando criar uma integração a um webservice utilizando o seguinte link do serviço:
      https://wwwh.cnj.jus.br/pjemni-2x/intercomunicacao?wsdl
       
      Para tanto, fiz o seguinte código-teste:
       
      <?php $client = new SoapClient("https://wwwh.cnj.jus.br/pjemni-2x/intercomunicacao?wsdl"); $function = "consultarProcesso"; $arguments = array ( "idConsultante" => "xxx", "senhaConsultante" => "xxx", "numeroProcesso" => "50243604120198130702", "movimentos" => true ); $result = $client->__soapCall($function, $arguments); print $result; ?>  
      Contudo, ao executar o código, recebo o seguinte erro:
      Fatal error: Uncaught SoapFault exception: [soap:Client] Message part param1 was not recognized. (Does it exist in service WSDL?) in C:\xampp\htdocs\wstest\test.php:13 Stack trace: #0 C:\xampp\htdocs\wstest\test.php(13): SoapClient->__soapCall('consultarProces...', Array) #1 {main} thrown in C:\xampp\htdocs\wstest\test.php on line 13  
      Se alguém puder me ajudar, agradeço muito!!
    • By Pedro Batista Lopes
      Alguém poderia me ajudar faço uma busca no meu banco de dados, e faço um json_encode para mandar para o front.
      Mais as palavras que tem caracteres especiais Ç e acentos retornam null, não posso mudar a formatação do banco de dados.
      Segue o código.
      <?php require_once "../includes/php/conectar_bd.php"; require_once "../validar_sessao.php"; header('Content-type: text/html; charset=UTF-8') ; if ($conn->connect_errno) { echo "Falha ao conectar: " . $db->connect_errno; } //if ($_REQUEST['usr_logado'] == "") return; $mes_inicio = 1;//$_REQUEST['mes_inicio']; $mes_fim =2;// $_REQUEST['mes_fim']; $ano = 2019;// $_REQUEST['ano']; $cod_nat_oper = '1,40,42,99,18,292,51,302,303';$_REQUEST['nat_operacao']; if (is_array($cod_nat_oper)) $cod_nat_oper = implode(",",$cod_nat_oper); //if (is_array($cod_nat_oper)) $cod_nat_oper = implode(",",$cod_nat_oper); $Result_atendente = "SELECT a.empresa ,a.cliente ,b.nom_cliente ,e.cod_uni_feder ,d.cod_repres ,f.den_tip_cli"; $meses_total = null; for($mes = $mes_inicio; $mes <= $mes_fim; $mes++) { $Result_atendente .= ",SUM(CASE WHEN MONTH(dat_hor_emissao) = $mes THEN 1 ELSE 0 END) AS Qtd_mes$mes"; $meses_total[] = $mes; } $meses_total = implode($meses_total, ','); $Result_atendente .= ",SUM(CASE WHEN MONTH(dat_hor_emissao) IN($meses_total) THEN 1 ELSE 0 END) AS total"; $Result_atendente .= " FROM fat_nf_mestre a join clientes b on (b.cod_cliente = a.cliente) join fat_nf_item c on (c.empresa = a.empresa and c.trans_nota_fiscal = a.trans_nota_fiscal) join pedidos d on (d.cod_empresa = c.empresa and d.num_pedido = c.pedido) join cidades e on (e.cod_cidade = b.cod_cidade) join tipo_cliente f on (f.cod_tip_cli = b.cod_tip_cli) WHERE a.empresa IN (10,30,50,51) and YEAR(dat_hor_emissao) = $ano and d.Cod_tip_carteira = '1' and c.seq_item_nf = '1' and a.sit_nota_fiscal <> 'C' and a.natureza_operacao in (1,40,42,99,18,292,51,302,303) GROUP BY 1,2,3,4,5,6 HAVING SUM(CASE WHEN MONTH(dat_hor_emissao) IN($meses_total) THEN 1 ELSE 0 END) > 0"; $resultado_atendente = $db->prepare($Result_atendente); $resultado_atendente->execute(); $dado['rows'] = array(); while ($row_atendente = $resultado_atendente->fetch(PDO::FETCH_OBJ)) {array_push($dado['rows'], $row_atendente);} //echo "<pre>"; //echo $dado['nom_cliente']; //echo "</pre>"; echo json_encode($dado,JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); ?> e sai assim.
      { empresa: "10", cliente: "025368835000120", nom_cliente: null,****************************Campo com carecteres especiais cod_uni_feder: "MT", cod_repres: "533", den_tip_cli: "REVENDEDOR ", qtd_mes1: "1", qtd_mes2: "0", total: "1" },  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.