Recibo una solicitud POST en mi script PHP y me gustaría reenviar esta llamada a otra secuencia de comandos usando también POST. ¿Como hacer esto? Puedo usar cURL si es necesario para esta acción.
Respuesta
Tal vez:
curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
http://www.php.net/manual/en/function.curl-setopt.php
Esto puede ser pasado como una cadena urlencoded como 'párrafo1 = val1 val2 & párrafo2 = & ...' o como una matriz con el nombre del campo como clave y datos de campo como valor.
¿Has probado esto antes? Con la versión de CURL que uso, enviará los campos en "multipart/form-data", no en una publicación normal. –
Nunca lo he probado antes, pero la documentación de PHP hace un buen trabajo al documentar la funcionalidad. –
Esta es la respuesta la mayoría de las veces. Sin embargo, si tiene variables profundas pasadas en el contenido de la publicación (por ejemplo, "... & var1 [var2] = val & ...") no funcionará ('var1' se pasará como una matriz vacía). La respuesta de ZZCoder a continuación (usando 'http_build_query()') es la respuesta correcta (completa). – zeh
<?php
function executeCurl($arrOptions) {
$mixCH = curl_init();
foreach ($arrOptions as $strCurlOpt => $mixCurlOptValue) {
curl_setopt($mixCH, $strCurlOpt, $mixCurlOptValue);
}
$mixResponse = curl_exec($mixCH);
curl_close($mixCH);
return $mixResponse;
}
// if need any http auth
$username = 'http-auth-username';
$password = 'http-auth-password';
$requestType = 'POST'; // this can be PUT or POST
// this can be $arrPostData = $_POST;
$arrPostData = array(
'key1' => 'value-1-for-k1y-1',
'key2' => 'value-2-for-key-2',
'key3' => array(
'key31' => 'value-for-key-3-1',
'key32' => array(
'key321' => 'value-for-key321'
)
),
'key4' => array(
'key' => 'value'
)
);
// you can set your post data
$postData = http_build_query($arrPostData); // raw php array
$postData = json_encode($arrPostData); // Only USE this when request json data
$arrResponse = executeCurl(array(
CURLOPT_URL => 'http://whatever-your-request-url.com/xyz/yii',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPGET => true,
CURLOPT_VERBOSE => true,
CURLOPT_AUTOREFERER => true,
CURLOPT_CUSTOMREQUEST => $requestType,
CURLOPT_POSTFIELDS => $postData,
CURLOPT_HTTPHEADER => array(
"X-HTTP-Method-Override: " . $requestType,
'Content-Type: application/json', // Only USE this when request json data
),
// if required HTTP Authentication use below lines
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
CURLOPT_USERPWD => $username. ':' . $password
));
Si alguien necesita esto, aquí es una solicitud cURL totalmente funcional que redirige $ _POST en la que desea (basándose en la respuesta ZZ del codificador arriba)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://urlOfFileWherePostIsSubmitted.com");
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
// ZZ coder's part
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($_POST));
$response = curl_exec($ch);
curl_close($ch);
- 1. Pasando $ _POST valores con cURL
- 2. ¿Cómo uso OAuth con PHP y cURL?
- 3. ¿CÓMO PUBLICAR datos JSON con PHP cURL?
- 4. PHP CURL y HTTPS
- 5. PHP "php: // input" vs $ _POST
- 6. PHP $ _POST y solo id, no name
- 7. PHP: $ _GET y $ _POST en funciones?
- 8. CURL con PHP - Muy lento
- 9. PHP Curl con --data bandera?
- 10. Cómo CURL Entrar con Captcha y sesión
- 11. PHP: Cómo reemplazar en masa $ _POST [...] con strip_tags ($ _ POST [...])
- 12. Echo an $ _POST en PHP
- 13. PHP $ _REQUEST $ _GET o $ _POST
- 14. índice indefinido con $ _POST
- 15. Dónde desinfectar PHP $ _POST [] entrada?
- 16. Compilando php con curl, ¿dónde está curl instalado?
- 17. Guardar archivo utilizando curl y PHP
- 18. php: Obtener código fuente html con cURL
- 19. Cómo iniciar sesión con cURL con POST y Cookie
- 20. PHP Curl CURLOPT_IPRESOLVE
- 21. leyendo la página SSL con CURL (php)
- 22. Solicitud de SOAP en PHP con CURL
- 23. cURL y PHP que muestra "1"
- 24. Contactos PHP GMAIL Análisis XML con DOMDocument y cURL
- 25. Contabilización de matriz multidimensional con PHP y CURL
- 26. publicación de vbulletin mensajes con CURL y PHP
- 27. Cabeceras personalizadas PHP cURL
- 28. php cURL opción silenciosa?
- 29. Supervisión de PHP/Curl con Fiddler
- 30. Cómo imprimir_r $ _POST matriz?
¿Su script PHP necesita acceso a la respuesta enviada desde el POST reenviado? – webbiedave