【发布时间】:2014-01-09 16:41:46
【问题描述】:
我有一个简单的函数来通过POST 测试我的网络服务,如下所示:
function service(){
$service_url = 'http://example.com/example_endpoint/user';
$curl = curl_init($service_url);
$header = array(
'Content-Type: application/x-www-form-urlencoded'
);
$curl_post_data = array(
"name" => "name_test",
"mail" => "name_test@example.com",
"pass" => "123",
);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
$curl_response = curl_exec($curl);
curl_close($curl);
$xml = new SimpleXMLElement($curl_response);
}
网络服务正在指定数组上的参数,并且 Content-Type 应该是 application/x-www-form-urlencoded 但是当我在浏览器中运行该函数并检查“检查元素”上的“网络”选项卡时,有一个调用通过GET 到我的网络服务,尽管我将选项设置为POST
并且 Content-Type 保持在text/html
该网络服务允许使用数组$curl_post_data中的参数创建用户
我使用Mozilla上的插件“海报”来调用我的网络服务并且它是成功的,但是当我调用上面的函数时它不起作用¿我怎样才能实现这个函数来进行正确的调用?
【问题讨论】:
标签: web-services post curl get