[RESOLVIDO] Requisição Http, user e password NO-IP
1 resposta
denisbenjamim
Bom tarde Galera!
To precisando de uma ajuda nesse pequeno problema. Realizei as requisições via HTTP a api no no-ip, a fim de atualizar o serviço. Quando eu tento via browser funciona mas quando faço a requisição pela minha classe, recebo uma mensagem de erro.
Essa é a pagina que é fornecida para que seja feita a requisição pelo no-ip
Bom consegui Resolver. no-ip usa a codificação Base64 , mas esse é só metade da resolução, pelo o que andei pesquisando o dia inteiro Java nao consegue nativamente tratar certas sintaxe de URI, por sinal a recomendada é algo semelhante a isso <scheme>://<authority><path>?<query>. Porem mais especificamente na parte de <authority>, a qual nao recomendam a sintaxe user:password no lugar da authority, devido a utilizar texto puro é claro que se voce souber em que base esta consegue decodificar.
- Bem abaixo a solução que encontrei
privatestaticStringuserPassowrd;privatestaticStringpassword;privatestaticStringuser;privatestaticStringdominio="seuhost.no-ip.org";//Converte na base64 e transforma em Stringuser=newString("seuloginr".getBytes("x-base64"));password=newString("suasenha".getBytes("x-base64"));userPassowrd=newString((user+":"+password).getBytes("x-base64"));//Define como Authenticador padrao irá reagir ao ser requisitado o passwordAuthenticator.setDefault(newAuthenticator(){@OverrideprotectedPasswordAuthenticationgetPasswordAuthentication(){returnnewPasswordAuthentication(user,password.toCharArray());}});URLurl1=newURL("http://"+userPassowrd+"@dynupdate.no-ip.com/nic/update?hostname="+dominio);