Estou criando um cliente de serviço web REST em PHP e no momento estou usando curl para fazer solicitações ao serviço.
Como uso o curl para fazer solicitações autenticadas (http básicas)? Eu tenho que adicionar os cabeçalhos eu mesmo?
php
rest
curl
basic-authentication
em branco
fonte
fonte
CURLOPT_USERPWD
basicamente envia a base64 dauser:password
string com o cabeçalho http como abaixo:Além disso,
CURLOPT_USERPWD
você também pode usar aHTTP-Request
opção de cabeçalho, como abaixo, com outros cabeçalhos:fonte
CURLOPT_USERPWD
funcionou para mim.A maneira mais simples e nativa é usar o CURL diretamente.
Isso funciona para mim:
fonte
Diferente do SOAP, o REST não é um protocolo padronizado, por isso é um pouco difícil ter um "Cliente REST". No entanto, como a maioria dos serviços RESTful usa HTTP como protocolo subjacente, você deve poder usar qualquer biblioteca HTTP. Além do cURL, o PHP os possui via PEAR:
HTTP_Request2
que substituiu
HTTP_Request
Uma amostra de como eles fazem o HTTP Basic Auth
O suporte também Digest Auth
fonte
Se o tipo de autorização for Autenticação básica e os dados publicados forem json, faça o seguinte:
fonte
O Yahoo tem um tutorial sobre como fazer chamadas para seus serviços REST usando PHP:
Faça o Yahoo! Chamadas REST de serviço da Web com PHP
Eu não o usei, mas o Yahoo é o Yahoo e deve garantir pelo menos algum nível de qualidade. Eles não parecem cobrir solicitações PUT e DELETE, no entanto.
Além disso, as Notas contribuídas pelo usuário para curl_exec () e outras contêm muitas informações boas.
fonte
Você só precisa especificar as opções CURLOPT_HTTPAUTH e CURLOPT_USERPWD:
Ou especifique o cabeçalho:
Exemplo de guzzle:
Consulte https://github.com/andriichuk/php-curl-cookbook#basic-auth
fonte
O Guzzle, mantido muito ativamente por Michael Dowling, é um bom caminho a percorrer. Além da interface elegante, chamada assíncrona e conformidade com PSR, simplifica bastante os cabeçalhos de autenticação para chamadas REST:
Veja os documentos .
fonte
Para quem não quer usar curl:
fonte
Existem várias estruturas REST por aí. Eu recomendo fortemente que você procure no Slim mini Framework for PHP
Aqui está uma lista de outros.
fonte