Recibí una llamada HTTP implementada con C# que llama a una API de Azure:
public async Task<string> CheckPipelineRunStatus(string pipelineId, string pipelineRunId, CancellationToken cancellationToken = default) { string responseBody = ""; using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String( System.Text.ASCIIEncoding.ASCII.GetBytes( string.Format("{0}:{1}", "", _token)))); var requestUrl = $"https://dev.azure.com/{_organization}/{_project}/_apis/pipelines/{pipelineId}/runs/{pipelineRunId}?api-version={_api_version}"; using (HttpResponseMessage response = await client.GetAsync(requestUrl, cancellationToken)) { response.EnsureSuccessStatusCode(); responseBody = await response.Content.ReadAsStringAsync(); } } return responseBody; } Necesito hacer la misma llamada en una llamada de Javascript y no estoy seguro de cómo se supone que debo enviar el encabezado de Authorization .
Esto es lo que obtuve hasta ahora sin el encabezado (pregunta en el comentario dentro del código):
async function checkPipelineStatus(url) { var params = { method: 'GET', headers: { 'Content-Type': 'application/json', //is the auth supposed to be here? what to do with that 64base string? } }; const fetchResult = await fetch(url, params); const result = await fetchResult.text(); if (!fetchResult.ok) { throw result; } return result; }Según lo solicitado, aquí está su código JavaScript con el encabezado insertado:
async function checkPipelineStatus(url) { let base64Credentials = btoa(':' + _token); var params = { method: 'GET', headers: { 'Content-Type': 'application/json', // Insert your own Base64 credentials here: 'Authorization': `Basic ${base64Credentials}` } }; const fetchResult = await fetch(url, params); const result = await fetchResult.text(); if (!fetchResult.ok) { throw result; } return result; }