Test http request from github pages

This commit is contained in:
Alban Auzeill 2020-06-23 08:14:54 +02:00
parent c680b6082a
commit b422c39a5d

View File

@ -1,7 +1,58 @@
<html>
<!doctype html>
<html lang="en">
<head>
<title>Hello!</title></head>
<body>
<h1>Hello!</h1>
<meta charset="utf-8">
<title>Test Http Request From JS</title>
</head>
<body onload="init()">
<h1>Test Http Request From JS</h1>
<div id="div-result"></div>
</body>
<script>
function init() {
const github_v3 ="application/vnd.github.v3.html";
const divResult = document.getElementById("div-result");
const requestDataList = [
{ url: "https://sonarsource.github.io/rspec/rules/S3457/java/rule.adoc", accept: "*", data: null },
{ url: "https://raw.githubusercontent.com/SonarSource/sonar-java/master/.github/workflows/dogfood.yml", accept: "*", data: null },
{ url: "https://api.github.com/repos/SonarSource/sonar-java/branches", accept: github_v3, data: null }
];
for (let i = 0; i < requestDataList.length; i++) {
const requestData = requestDataList[i];
try {
const xhr = new XMLHttpRequest();
divResult.innerText = divResult.innerText + "Call " + requestData.url + "\n";
xhr.open('GET', requestData.url);
xhr.setRequestHeader("Accept", requestData.accept);
if (requestData.type) {
xhr.setRequestHeader("Content-Type", requestData.type);
}
xhr.onreadystatechange = function() {
let requestState = "Request " + requestData.url + " readyState: " + xhr.readyState;
if(xhr.readyState === 4) {
requestState += " status: " + xhr.status;
if (xhr.status === 200) {
requestState += "\n----------------------\n" +
xhr.getAllResponseHeaders() +
"\n" +
xhr.responseText +
"\n----------------------\n";
}
}
divResult.innerText = divResult.innerText + requestState + "\n";
}
xhr.send(requestData.data);
} catch (e) {
let exceptionMessage = "";
if (e.message) {
exceptionMessage += e.message;
}
if (e.stack) {
exceptionMessage += ' | stack: ' + e.stack;
}
divResult.innerText = divResult.innerText + "Exception while calling " + requestData.url + "\n" + exceptionMessage + "\n";
}
}
}
</script>
</html>