Advertisement
am_dot_com

SW20210514-3

May 14th, 2021
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Pedidos a recursos terceiros</title>
  6. </head>
  7. <body>
  8. <section id="idSectionResposta"></section>
  9. <form>
  10. <label for="idTextCidade">Portuguese City:</label>
  11. <input type="text" id="idTextCidade" value="Lisbon"><br>
  12. <input type="button" value="get temperature" id="idBtnGetTemp">
  13. </form>
  14. <script>
  15. window.onload = boot;
  16.  
  17. function vaiBuscarTemp(){
  18. var strPedido = "https://api.openweathermap.org/data/2.5/weather?q=";
  19. strPedido+=document.getElementById("idTextCidade").value;
  20. strPedido+=",PT&appid=29bcc32be0e5fe8a61634d7d8e7356a8";
  21. ajaxGet(strPedido);
  22. }
  23.  
  24. function boot(){
  25. document.getElementById("idBtnGetTemp").onclick = vaiBuscarTemp;
  26. }
  27. function k2c (pK){
  28. return pK-273.15;
  29. }//k2c
  30.  
  31. //callback
  32. function comoReagirMudancasDeMaturidade (){
  33. var pontoDeMaturidade = this.readyState;
  34. var bRespostaDisponivel = pontoDeMaturidade===4;
  35. if (bRespostaDisponivel){
  36. //a resposta está pronta
  37. /*
  38. document.getElementById("idSectionResposta").
  39. innerHTML = this.responseText;
  40. */
  41. var strRespostaEstruturadaEmJSON = this.responseText;
  42. var oResposta = JSON.parse(strRespostaEstruturadaEmJSON);
  43. var temperaturaK = oResposta.main.temp;
  44. var c = k2c(temperaturaK);
  45. //c = Math.round(c);
  46. var strHTML = "A temperatura em Santarém é <mark>"+c+"</mark> celsius";
  47. document.getElementById("idSectionResposta").innerHTML = strHTML;
  48. }
  49. }//comoReagirMudancasDeMaturidade
  50.  
  51. function ajaxGet(
  52. pUrl
  53. ){
  54. var oRequestToServiceProvider = new XMLHttpRequest();
  55.  
  56. oRequestToServiceProvider.open(
  57. "GET",//método de invocação
  58. pUrl,//endereço do recurso
  59. true//booleano (true para pedidos assíncronos , false para pedidos bloqueantes)
  60. );
  61. oRequestToServiceProvider.onreadystatechange = comoReagirMudancasDeMaturidade;
  62. oRequestToServiceProvider.send(); //submissão do pedido
  63. }
  64.  
  65. </script>
  66. </body>
  67. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement