ID da região
O REGION_ID
é um código abreviado que a Google atribui com base na região que seleciona quando cria a sua app. O código não corresponde a um país ou uma província, embora alguns IDs de regiões possam parecer semelhantes aos códigos de países e províncias usados frequentemente. Para apps criadas após
fevereiro de 2020, REGION_ID.r
está incluído nos
URLs do App Engine. Para apps existentes criadas antes desta data, o
ID da região é opcional no URL.
Saiba mais acerca dos IDs de regiões.
Esta página descreve como emitir pedidos HTTP(S) a partir da sua app do App Engine.
O App Engine usa o serviço URL Fetch para emitir pedidos HTTP(S) de saída. Para ver detalhes sobre os limites de tamanho dos pedidos e os cabeçalhos enviados num pedido de obtenção de URL, consulte o artigo Pedidos de saída.Emitir um pedido HTTP
A linguagem PHP oferece várias funções para fazer pedidos HTTP remotos. Estas são implementadas de formas diferentes no Google App Engine e estão sujeitas a quotas e custos diferentes:
- Controladores de streams: os controladores de streams PHP nativos
http://
ehttps://
são configurados para usar o serviço URL Fetch do App Engine para fazer pedidos HTTP. Muitas funções PHP, como file_get_contents(), usam controladores de streams indiretamente e, por isso, também usam o serviço URL Fetch. - Extensão cURL: a extensão cURL usa o serviço Sockets. A extensão cURL tem de estar ativada no ficheiro php.ini da sua aplicação, e a faturação tem de estar ativada para o seu projeto.
- cURL "lite": o cURL "lite" é uma versão da biblioteca cURL fornecida pela Google que usa o
serviço URL Fetch em vez do
serviço Sockets. Tem de ativar o cURL "lite" no ficheiro php.ini da sua aplicação.
Os seguintes métodos da extensão cURL não são suportados:
- Funções
curl_multi_*
- Suporte para protocolos não padrão
- Compatibilidade com portas que não sejam a 80 (HTTP) ou a 443 (HTTPS)
- Funções
A decisão de usar cURL, cURL Lite ou wrappers de streams depende, em grande parte, da sua aplicação e preferência. Se não tiver a certeza, use a biblioteca HTTP Guzzle. O Guzzle oferece uma camada de abstração para pedidos HTTP, o que lhe permite alterar o serviço subjacente sem reescrever o código da aplicação.
Controladores de streams
Os controladores de streams HTTP(S) padrão são usados em funções PHP incorporadas, como fopen()
e file_get_contents()
.
cURL e cURL "lite"
Ative o cURL ou o cURL "lite" em php.ini para usar funções cURL para pedidos de saída. O cURL "lite" usa o serviço URL Fetch, enquanto o cURL usa a API Sockets
Guzzle
Por predefinição, o Guzzle usa o controlador de fluxo do PHP, mas usa automaticamente um controlador cURL se o cURL ou o cURL "lite" estiver ativado.
Defina um limite de tempo do pedido
Use a opção timeout
em Contexto HTTP para alterar o prazo.
Desative os redirecionamentos
Se estiver a usar a obtenção de URL, o serviço de obtenção de URL subjacente segue até cinco redirecionamentos por predefinição. Estes redirecionamentos podem encaminhar informações confidenciais, como cabeçalhos de autorização, para o destino redirecionado. Se a sua app não requerer redirecionamentos HTTP, recomendamos que os desative.
Para indicar ao serviço URL Fetch que não siga os redirecionamentos, a sua app tem de
definir o parâmetro follow_location
nas
opções de contexto HTTP
para false
.
Emitir um pedido HTTPS
Por predefinição, o serviço URL Fetch subjacente valida o certificado do anfitrião que contacta e rejeita pedidos se o certificado não corresponder. Não precisa de proteger explicitamente o seu pedido.
Desative a validação de certificados de anfitrião
Por predefinição, a implementação do App Engine do wrapper HTTPS tenta validar o certificado do anfitrião e rejeita pedidos em que o certificado não corresponde. Para desativar este comportamento, defina o valor de
verify_peer
como false
nas
opções de contexto SSL/TLS.
Emitir um pedido para outra app do App Engine
Quando emite um pedido para outra app do App Engine, a sua app do App Engine
tem de afirmar a sua identidade adicionando o cabeçalho X-Appengine-Inbound-Appid
ao pedido.
Se instruir o serviço URL Fetch para não seguir redirecionamentos, o App Engine adiciona este cabeçalho aos pedidos automaticamente.
Consulte o artigo Desativar redirecionamentos para obter orientações sobre como desativar redirecionamentos.
O que se segue?
Saiba mais sobre o serviço de obtenção de URL, como os cabeçalhos que são enviados num pedido de obtenção de URL em Pedidos de saída.