Buscar resposta - Escopo, Global
. Buscar resposta A API fornece métodos para criar um novo objeto de resposta e para lidar com o corpo de resposta criado por um Buscar solicitação Método de API.
- Fetch - fetch (recurso de cadeia de caracteres, opções de objeto): Inicia o processo de buscar um recurso da rede.
- Buscar cabeçalhos - Escopo, Global Recuperar e modificar cabeçalhos de solicitação e resposta.
- Buscar solicitação - Escopo, Global: Crie um novo objeto de solicitação.
- Buscar SolicitInit - Escopo, Global Definir opções para configurar uma solicitação de busca.
- Buscar resposta - Escopo, Global: Crie um novo objeto de resposta.
Para oferecer suporte a ações de busca, a propriedade do sistema, glide.hosts.allowlist permite controles sobre o que hosts um método de busca pode acessar. Aplica-se a APIs HTTP como RestMessageV2 e os mencionados acima. Para obter mais informações sobre glide.hosts.allowlist , consulte Available system properties.
Propriedades da resposta
. Resposta A API fornece propriedades que retornam detalhes sobre a resposta HTTP. Essas propriedades permitem que você acesse metadados (como status , cabeçalhos , tipo e o corpo da resposta ( corpo ) para processamento adicional. Eles permitem verificar o sucesso de uma solicitação ( ok E analisando os dados retornados em vários formatos (por exemplo, JSON ou texto). Essas propriedades são importantes para validar e lidar com respostas do servidor em aplicações do lado do cliente. Para ler explicações mais detalhadas sobre cada propriedade, consulte https://developer.mozilla.org/en-US/docs/Web/API/Response.
| Nome da propriedade | Descrição | Exemplo |
|---|---|---|
| corpo | Pronto. Contém um fluxo legível de dados de bytes no conteúdo do corpo da resposta. Valores válidos: Um ReadableStream ou nulo. Tipo de dados: Cadeia de caracteres |
|
| Corpo usado | Pronto. Sinalizador que indica se o corpo ainda foi lido. Valores aceitos:
Tipo de dados: Booliano |
|
| cabeçalhos | Somente leitura. O objeto Cabeçalhos associado à resposta. Tipo de dados: Objeto de cabeçalhos |
|
| ok | Pronto. Sinalizador que indica se a resposta foi bem-sucedida (status no intervalo de 200 a 299) ou não. Valores aceitos:
Tipo de dados: Booliano |
|
| redirecionado | Somente leitura. Sinalizador que indica se a resposta é um resultado do redirecionamento da solicitação. Valores aceitos:
Tipo de dados: Booliano |
|
| status | Somente leitura. Códigos de status HTTP da resposta. Por exemplo, 200 para um sucesso. Tipo de dados: Número |
|
| StatusText | Somente leitura. Mensagem de status correspondente ao código de status HTTP em response.status. Por exemplo, seria OK para um código de status 200 , Continuar para 100 , Não encontrado para 404 .Tipo de dados: Cadeia de caracteres |
|
| tipo | Somente leitura. Tipo de resposta. Valores aceitos:
Tipo de dados: Cadeia de caracteres |
|
| URL | Somente leitura. URL da resposta. Tipo de dados: Cadeia de caracteres |
|
Buscar resposta - Resposta (corpo do objeto, opções do objeto)
Cria um novo objeto de resposta usando Resposta () construtor.
| Nome | Tipo | Descrição |
|---|---|---|
| corpo | Objeto | Opcional. Um objeto que define um corpo para a resposta. Tipos válidos:
Padrão: Nulo |
| opções | Objeto | Opcional. Um objeto de opções que contém todas as configurações personalizadas que você deseja aplicar à resposta ou um objeto vazio (que é o valor padrão). As opções possíveis são:
|
Neste exemplo, criamos um novo objeto Response usando o construtor, passando um novo blob como um corpo e um objeto init contendo status personalizado e opções statusText:
const myBlob = new Blob();
const myOptions = { status: 200, statusText: "Status message!" };
const myResponse = new Response(myBlob, myOptions);
Buscar resposta - arrayBuffer()
Retorna uma promessa que resolve com um ArrayBuffer.
. ArrayBuffer() o método é útil ao trabalhar com dados binários, como imagens, arquivos de áudio ou qualquer outro arquivo binário que precise ser processado.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Objeto | Uma promessa que resolve com um ArrayBuffer , que representa um buffer de dados binários brutos genéricos. |
| Exceção | Descrição |
|---|---|
| DOMException - AbortError | Uma exceção informando que a solicitação foi anulada. |
| TypeError | Lançado por um dos seguintes motivos:
|
| RangeError | Houve um problema ao criar o associado ArrayBuffer . Por exemplo, se o tamanho dos dados for muito grande. |
- buscar() Busca um recurso da URL especificada.
- response.ok: Verifica se o status da resposta está no intervalo 200-299.
- ArrayBuffer() Lê o corpo da resposta e o converte em um ArrayBuffer, que representa um buffer de dados binários brutos genéricos de tamanho fixo.
- Uint8Array: Converte o ArrayBuffer em um Uint8Array, que é uma matriz de tipo para facilitar a manipulação de dados binários.
javascriptCopy code// Simple API to fetch binary data and process it using arrayBuffer()asyncfunctionfetchBinaryData(url) {
try {
// Fetch the resource from the provided URLconst response = awaitfetch(url);
// Check if the response is successfulif (!response.ok) {
thrownewError(`HTTP error! Status: ${response.status}`);
}
// Convert the response body to an ArrayBufferconst arrayBuffer = await response.arrayBuffer();
// Process the ArrayBuffer (e.g., convert it to a typed array)const uint8Array = newUint8Array(arrayBuffer);
// Return the processed datareturn uint8Array;
} catch (error) {
console.error("Error fetching or processing binary data:", error);
throw error;
}
}
// Example usageconst binaryDataUrl = 'https://example.com/path/to/binary/data';
fetchBinaryData(binaryDataUrl)
.then((data) => {
console.log("Binary data as Uint8Array:", data);
// Further processing can be done here, e.g., rendering an image or playing audio
})
.catch((error) => {
console.error("Failed to fetch binary data:", error);
});Buscar resposta - blob()
Retorna uma promessa que resolve com um blob.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Objeto | Uma promessa que resolve com um Blob . |
| Exceção | Descrição |
|---|---|
| DOMException - AbortError | Uma exceção informando que a solicitação foi anulada. |
| TypeError | Lançado por um dos seguintes motivos:
|
- buscar (url) Busca um recurso da URL especificada.
- response.blob() Converte o corpo da resposta em um objeto Blob, que representa dados binários.
- CreateObjectURL(blob) Gera uma URL temporária para o blob, que pode ser usada no DOM (por exemplo, como uma fonte de imagem).
- Anexando a imagem ao DOM: Cria dinamicamente um elemento de imagem, define o URL do blob como sua origem e o anexa ao corpo do documento.
async function fetchBlob(url) {
try {
// Fetch the resource from the provided URL
const response = await fetch(url);
// Check if the response is successful
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
// Convert the response body to a Blob
const blob = await response.blob();
// Create a URL for the Blob and log it
const blobUrl = URL.createObjectURL(blob);
console.log("Blob URL:", blobUrl);
// For example, you can set it as the source of an image
const img = document.createElement('img');
img.src = blobUrl;
img.alt = "Fetched Blob Image";
document.body.appendChild(img);
} catch (error) {
console.error("Error fetching or processing blob:", error);
}
}
// Example usage with an image URL
const imageUrl = 'https://via.placeholder.com/150';
fetchBlob(imageUrl);
Buscar resposta - bytes ()
Retorna uma promessa que resolve com um Uint8Array.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Objeto | Uma promessa que resolve com um Uint8Array. |
| Exceção | Descrição |
|---|---|
| DOMException- Erro de Abort | A solicitação foi anulada. |
| TypeError | Lançado por um dos seguintes motivos:
|
| RangeError | Houve um problema ao criar o associado ArrayBuffer . Por exemplo, se o tamanho dos dados for muito grande. |
O exemplo a seguir mostra como buscar um arquivo de texto, retornar o corpo como uma Uint8Array e decodificá-lo em uma cadeia de caracteres.
const response = await fetch("https://www.example.com/textfile.txt");
const textFile = await response.bytes();
const string = new TextDecoder().decode(textFile);
console.log(string);
Buscar resposta - formData()
Retorna uma promessa que resolve com um objeto FormData.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Objeto | Uma promessa que resolve com um FormData objeto. |
| Exceção | Descrição |
|---|---|
| DOMException- Erro de Abort | A solicitação foi anulada. |
| TypeError | Lançado por um dos seguintes motivos:
|
- Corpo da solicitação: Usado
JSON.stringify()Para enviar os dados do formulário como JSON em vez de parâmetros codificados por URL. - Content-Type: Defina como
aplicação/jsonpara indicar o formato do corpo da solicitação.
// Example of using Response.formData()
async function fetchFormData(url) {
try {
// Make a POST request to fetch the form data
const response = await fetch(url, {
method: 'POST',
body: JSON.stringify({
name: 'John Doe',
email: 'john.doe@example.com',
}),
headers: {
'Content-Type': 'application/json',
},
});
// Check if the response is successful
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
// Parse the response as FormData
const formData = await response.formData();
// Iterate through the FormData entries
for (const [key, value] of formData.entries()) {
console.log(`${key}: ${value}`);
}
} catch (error) {
console.error("Error fetching or processing form data:", error);
}
}
// Example usage
const formEndpoint = 'https://httpbin.org/post'; // Replace with your form endpoint
fetchFormData(formEndpoint);
Saída:
name: John Doe
email: john.doe@example.com
Buscar resposta - json()
Retorna uma promessa que resolve o resultado da análise do texto do corpo como JSON.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Objeto | Uma promessa que resolve um objeto JavaScript. Este objeto pode ser qualquer coisa que possa ser representada por JSON, como um objeto, matriz, cadeia de caracteres, número, e assim por diante. |
| Exceção | Descrição |
|---|---|
| DOMException- Erro de Abort | A solicitação foi anulada. |
| TypeError | Lançado por um dos seguintes motivos:
|
| SintaxError | O corpo da resposta não pode ser analisado como JSON. |
- buscar() Faz uma solicitação GET para o URL.
- . response.okverifica se a solicitação foi bem-sucedida (códigos de status 200 a 299).
- Se bem-sucedido, response.json() É chamado para analisar os dados JSON da resposta.
- Os dados analisados são registrados em log nos logs do sistema usando Console API. Se ocorrer algum erro durante a solicitação ou análise, ele será detectado e registrado em log.
fetch('https://jsonplaceholder.typicode.com/posts/1')
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(data => console.log(data))
.catch(error => console.error('Fetch error:', error));
Buscar resposta - text()
Lê o corpo da resposta e o retorna como uma cadeia de caracteres simples. A resposta é sempre decodificada usando UTF-8.
. texto () O método é útil para respostas que contêm dados textuais, como HTML, JSON (se você quiser manipulá-los manualmente), XML ou arquivos de texto simples que devem ser tratados como cadeias de caracteres simples.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Nenhum(a) | Uma promessa que resolve com uma cadeia de caracteres UTF-8-enconded. |
| Exceção | Descrição |
|---|---|
| DOMException- Erro de Abort | A solicitação foi anulada. |
| TypeError | Lançado por um dos seguintes motivos:
|
O exemplo a seguir mostra como é uma maneira simples de usar texto () quando o servidor retorna texto sem formatação, como Olá, mundo! Esta é uma resposta de amostra .
const response = awaitfetch('https://example.com/text-endpoint');
const text = await response.text();
console.log(text); // Outputs: Hello, world! This is a sample response.
Saída:
Hello, world! This is a sample response.