Como posso enviar dados sem POSTFIELDS no PHP curl?

5

Estou usando uma API REST através do PHP e estou um pouco confuso com o comportamento CURL_POSTFIELDS, o que implica que devo enviar uma querystring ou array, mas o que estou tentando fazer é enviar uma string de Texto JSON.

Na API que estou usando, não existe um campo: link

Então, como posso enviar dados que não são interpretados como uma string de consulta e sem ter que usar um arquivo?

    
por dukeofgaming 27.05.2013 / 22:00
fonte

2 respostas

5

Acontece que tudo que eu precisava era:

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($data_string))                    
);

Dessa forma, o conteúdo enviado nos POSTFIELDS é interpretado da maneira correta. Fonte: link

    
por 28.05.2013 / 01:29
fonte
0

Eu encontrei um artigo sobre o uso de JSON com PHP / CURL

Em geral, fazemos praticamente isso, mas com uma solicitação XML-RPC:

curl_setopt($cnxn, CURLOPT_POST, TRUE);
curl_setopt($cnxn, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($cnxn, CURLOPT_POSTFIELDS, $body);

Acabamos de criar o documento XML para a solicitação de RPC na variável $body e nosso servidor o lerá como o corpo da solicitação. Usamos o Zend Framework MVC, mas você pode ler o corpo da solicitação bruta de entrada do fluxo php://input , se estiver rolando o seu próprio.

    
por 28.05.2013 / 00:39
fonte

Tags