【发布时间】:2010-10-04 21:19:28
【问题描述】:
我正在使用 cURL 进行 HTTP POST
$url = "http://localhost:8080/~demo/cgi-bin/execute/100";
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($data));
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
//execute post
$result = curl_exec($ch);
echo("$result");
//close connection
curl_close($ch);
帖子被执行,但响应显示错误:
请求的 URL /~demo/100 是 在此服务器上找不到。
显然,上述 URL 不存在于服务器之外,因为(不知何故)cURL 改变了 URL。
应该是 /~demo/cgi-bin/execute/100 。此网址可在浏览器中使用。
请告诉我为什么这样做? 为了我想要的,我该如何阻止它?
【问题讨论】:
-
大概如果你尝试在浏览器窗口中访问localhost:8080/~demo/cgi-bin/execute/100 就可以了?
-
抛出一个 print_r( curl_getinfo($ch) );在 curl_exec() 之后看看你得到了什么。
-
应该是 curl_setopt($ch,CURLOPT_POST,true);
标签: php post curl httpwebrequest