2009-09-01 6 views
3

Je voudrais ajouter quelques données au corps d'une requête http en utilisant cURL en PHP.Possibilité d'ajouter des données au corps d'une requête HTTP en utilisant cURL en PHP?

Est-ce possible? Comment?

J'envoie une requête HTTP à un serveur distant. J'ai ajouté tous les en-têtes que je veux, mais maintenant je dois ajouter plus de données au corps de HTTP mais je ne peux pas savoir comment le faire.

Il est censé ressembler à ceci:

 
Host: stackoverflow.com 
Authorization: Basic asd3sd6878sdf6svg87fS 
User-Agent: My user agent 
... other headers... 

I want to add data to the request here 
+0

Quel type de données? En-têtes supplémentaires? – Lodle

+0

En-têtes supplémentaires au corps? – Zed

Répondre

6

Non 100% sûr de ce que vous voulez dire ...

Si vous voulez saisir une page, et remplacer le contenu/insérer du contenu - vous pouvez faire quelque chose comme ceci:

$ch = curl_init("http://stackoverflow.com/questions/1361169/possible-to-add-data-to-the-body-of-a-http-request-using-curl-in-php"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); 
$output = curl_exec($ch); 

$output = str_replace('Possible to add data to the body of a HTTP request using cURL in PHP?', 'I have just changed the title of your post...', $output); 

echo $output; 

Ceci imprimer cette page ...

EDIT:

Avec les nouvelles informations ajoutées, je pense que vous devriez être en mesure d'utiliser les POSTFIELDS .. Rappelez-vous juste de mettre le POST à ​​1 ..

E.g. (quelque chose comme ça - pas testé)

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://stackoverflow.com"); 
curl_setopt($ch, CURLOPT_USERAGENT, "My user agent"); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $myOtherHeaderStringVariable); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HEADER, 1); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "I want to add data to the request here"); 
$output = curl_exec($ch); 
+0

Belle démonstration :) +1 – drAlberT

+0

Alors où sont les données ajoutées à la requête http? – Zed

+0

Oui, l'édition l'a résolu. Merci beaucoup :) – nohj

0

Vous voulez regarder curl et plus particulièrement curl_setopt.

Si vous pouvez être plus précis sur vos besoins, je peux vous donner un exemple, même si les exemples sur la page de manuel sont assez bons pour vous aider à démarrer.

1

Vous pouvez uniquement ajouter les valeurs de message lors de l'envoi d'une demande de publication avec l'option CURLOPT_POSTFIELDS.

+0

curl est une bibliothèque complète, bien sûr, il est possible de faire n'importe quoi sur les données, étant le protocole pris en charge. – drAlberT

+0

@AlberT soin de poster une réponse alors? :) – Zed

+0

@Zed, déjà en place voté la réponse de Goddva pas besoin de répéter une bonne réponse à nouveau :) – drAlberT

Questions connexes