Estou tentando fazer com que eu saiba o valor do frete mas não funciona com a URL que estou colocando. Se eu colocar o arquivo XML no diretório da aplicação, eu consigo pegar o valor do frete.
Que eu saiba não dá pra fazer requisições AJAX para outros domínios externos, a não ser requisições JSONP
P
pqnoje
pois é, mas eles ainda não implementaram resposta pra jsonp, existe alguma forma de fazer esse método funcionar?
P
pqnoje
coloquei
dataType: "jsonp" //retorna um arquivo XML
ai o navegador retorna um erro falando que a expressão não foi terminada, existe alguma forma de analisar o que foi retornado?
Grato.
V
victorcosta
A solução pra vc seria fazer uma requisição pro seu sistema Java, que então faria uma requisição HTTP pro site dos correios e retornaria a resposta dele
P
pqnoje
Hunnmm
pode ser tbm, vou dar uma lida na API do Java pra analisar arquivos XML…
provavelmente deve ter algum construtor que eu coloco a URL não tem? se existir, o cliente vai aceitar a minha requisição e vai me devolver um arquivo .xml de presente?
Grato.
Hunnmm
pode ser tbm, vou dar uma lida na API do Java pra analisar arquivos XML…
provavelmente deve ter algum construtor que eu coloco a URL não tem? se existir, o cliente vai aceitar a minha requisição e vai me devolver um arquivo .xml de presente?
Grato.
Não precisa analisar XML no Java, o que retornar da requisição HTTP vc retorna na sua action Java, e aí ao invés do seu código Javascript apontar pro site dos correios apontaria pra sua action. O Java seria tipo um proxy para permitir requisição cross-domain
P
pqnoje
eu troquei pra post e agora ta retornando o endereço exadecimal de um objeto, só não sei o que fazer com esse troço agora.
enquando a requisição via Action eu vou tentar, eu uso Struts2, vou dar uma olhada na API pra ver se tem alguma coisa interessante e já te falo…
P
pqnoje
Não consigo achar nada que me ajude pra fazer requisições em URLs externas, vc sabe alguma classe pra me indicar?
Grato.
V
victorcosta
Sem lib usa-se HttpURLConnection que se instancia a partir de um objeto da classe URL
To saindo agora, se quando voltar vc não tiver conseguido eu posto um exemplo
P
pqnoje
cara, não conseguindo implementar a classe, pode me ajudar? por favor…
P
pqnoje1 like
Consegui!!! :D
publicStringexecute(){address="http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?"+"nCdEmpresa="+"&sDsSenha="+"&sCepOrigem=02724070"+"&sCepDestino=71939360"+"&nVlPeso=1"+"&nCdFormato=1"+"&nVlComprimento=20"+"&nVlAltura=5"+"&nVlLargura=15"+"&sCdMaoPropria=s"+"&nVlValorDeclarado=200"+"&sCdAvisoRecebimento=s"+"&nCdServico=41106"+"&nVlDiametro=0"+"&StrRetorno=xml";HttpURLConnectioncon=null;PrintStreamout=null;try{URLurl=newjava.net.URL(address);//aqui se define o endereço que devolverá o arquivocon=(java.net.HttpURLConnection)url.openConnection();//prepara conexão com o clientecon.setUseCaches(false);con.setDoOutput(true);con.setDoInput(true);con.setRequestProperty("Content-Type","text/xml");//define o tipo de retorno, pode ser outro tipo tambémout=newPrintStream(con.getOutputStream());//obtém o que o cliente devolveuBufferedReaderbuffReader=newBufferedReader(newInputStreamReader(con.getInputStream()));StringBuildersb=newStringBuilder();Stringxml;while((xml=buffReader.readLine())!=null){sb.append(xml);//recebe o arquivo xml do cliente}System.out.println(sb.toString());//imprime o xml retornado :)out.close();con.disconnect();// sempre feche as conexões!}catch(Exceptione){e.printStackTrace();out.close();con.disconnect();// sempre feche as conexões!}returnAction.SUCCESS;// para quem usa Struts 2 }
No caso de requisitar XML sem ser de endereço loca, não ś possível, só com Json mesmo. Eu também achava que dava, pois só uso Json em todas as minhas Actions.