我想在PHP中使用cURL向http请求的主体添加一些数据。
这可能吗?怎么样?
我正在向远程服务器发送HTTP请求。我已添加了我想要的所有标头,但现在我需要向HTTP主体添加更多数据,但我无法弄清楚如何做到这一点。
应该看起来像这样:
Host: stackoverflow.com Authorization: Basic asd3sd6878sdf6svg87fS User-Agent: My user agent ... other headers... I want to add data to the request here
答案 0 :(得分:6)
不 100%确定您的意思......
如果您想抓取一个页面,并替换内容/插入一些内容 - 您可以这样做:
$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;
这将打印此页面......
修改强>
添加新信息后,我认为您应该可以使用POSTFIELDS ..只需记住将POST设置为1 ..
E.g。 (像这样 - 未经测试)
$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);
答案 1 :(得分:1)
您只能在使用CURLOPT_POSTFIELDS选项发送帖子请求时添加帖子值。
答案 2 :(得分:0)
您需要查看curl
,更具体地说curl_setopt
。
如果您可以更准确地了解自己的需求,我可以为您提供一个示例,尽管手册页上的示例非常适合您入门。