Come posso inviare dati senza POSTFIELDS in PHP curl?

5

Sto usando un'API REST tramite PHP e sono un po 'confuso sul comportamento CURL_POSTFIELDS, il che implica che devo inviare una querystring o array, ma quello che sto cercando di fare è solo inviare una stringa di Testo JSON.

Nell'API che sto usando non esiste un campo: link

Quindi, come posso semplicemente inviare dati che non vengono interpretati come una stringa di query e senza dover usare un file?

    
posta dukeofgaming 27.05.2013 - 22:00
fonte

2 risposte

5

Tutto quello di cui avevo bisogno era:

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

In questo modo il contenuto inviato nel POSTFIELDS viene interpretato nel modo giusto. Fonte: link

    
risposta data 28.05.2013 - 01:29
fonte
0

Ho trovato un articolo sull'utilizzo di JSON con PHP / CURL

In generale, facciamo praticamente questo, ma con una richiesta XML-RPC:

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

Costruiamo semplicemente il documento XML per la richiesta RPC nella variabile $body e il nostro server lo leggerà come corpo della richiesta. Utilizziamo Zend Framework MVC, ma puoi leggere il corpo della richiesta non elaborata in arrivo dallo stream php://input se stai eseguendo il rollover.

    
risposta data 28.05.2013 - 00:39
fonte

Leggi altre domande sui tag