我在我的PHP脚本中收到POST请求,并希望使用POST将此帖子调用转发给另一个脚本。这个怎么做?如果此操作需要,我可以使用cURL。
回答
也许:
curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
http://www.php.net/manual/en/function.curl-setopt.php
这可以作为像urlencoded的字符串被传递 'PARA1 = VAL1 & PARA2 = val2的&...' 或者作为与字段名作为关键字数组和现场数据作为价值。
你以前试过这个吗?使用我使用的CURL版本,这将发送“multipart/form-data”中的字段,而不是普通的帖子。 – 2010-04-28 00:41:32
我从来没有尝试过,但PHP文档在记录功能方面确实做得很好。 – 2010-04-29 19:19:11
这是大多数时候的答案。但是,如果您在帖子内容中传递了深层变量(例如“...&var1 [var2] = val&...”),它将不起作用(var1将作为空数组传递)。 ZZCoder的答案在下面(使用'http_build_query()')是(完整的)正确的答案。 – zeh 2012-10-11 15:35:56
<?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
));
如果有人需要这个,这里是一个新的路线$ _ POST一个功能齐全的卷曲请求你想要的(基于ZZ编码的回答以上),其中
$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. 如何使用$ _POST发布php变量
- 2. PHP:如何使用cURL在$ _FILES上转发
- 3. 如何使用PHP和JavaScript $ _POST表单?
- 4. 使用PHP和Curl,深数组发布
- 5. 如何使用PHP $ _Post
- 6. 如何使用PHP发布curl
- 7. PHP - 如何使用CURL发送POSTFIELDS?
- 8. 如何在PHP和cURL中使用OAuth?
- 9. 如何发布JSON与PHP和curl?
- 10. 如何在PHP和cURL中使用base64发送数组?
- 11. 如何使用PHP和Curl发送文件
- 12. 如何使用PHP Curl发送表单域和文件?
- 13. 如何让PHP使用curl?
- 14. 如何用php curl插入?
- 15. 使用使用curl和PHP PHP的Dom
- 16. 如何转换curl用于发送邮件在php
- 17. cURL PHP和cURL
- 18. 如何用PHP curl发送GET请求
- 19. 如何使用php $ _POST [something] not user'after [?
- 20. 如何插入$ _POST数组使用PHP
- 21. PHP:如何使用$ _POST在where子句
- 22. 使用cURL使用PHP发布文件
- 23. PHP表 - 使用curl
- 24. 使用curl和preg_match_all的PHP
- 25. PHP的使用cURL和pThread
- 26. 使用cookie和cURL PHP
- 27. 如何使用curl发布JSON数据?
- 28. $ _POST,FORM和PhP
- 29. 使用PHP和Curl隐藏响应
- 30. 使用cURL和PHP登录网站
您的PHP脚本是否需要访问从转发的POST发回的响应? – webbiedave 2010-04-27 22:14:53