【问题标题】:Missing argument 1 When Cosuming A SOAP service with CURL php使用 CURL php 使用 SOAP 服务时缺少参数 1
【发布时间】:2014-10-30 07:03:12
【问题描述】:

我有一个带有单个函数 getProd() 的 wsdl,它接受一个字符串参数并有一个 SOAPaction getProd。我已经能够使用 NuSoap 和 SoapClient 使用 Web 服务。但是每当我尝试使用 curl 使用它时,我都会收到错误 Missing argument 1 for getProd()。请帮忙。之前用 curl 消费过其他的 web 服务,所以不知道是什么问题。

这是我的代码

$soap_do = curl_init();
$post_string = "books";
curl_setopt($soap_do, CURLOPT_URL,            "http://localhost/wsdl/post.php?wsdl" );   
curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT, 10); 
curl_setopt($soap_do, CURLOPT_TIMEOUT,        10); 
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true );
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, false);  
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($soap_do, CURLOPT_POST,           true ); 
curl_setopt($soap_do, CURLOPT_POSTFIELDS,  $post_string); 
curl_setopt($soap_do, CURLOPT_HTTPHEADER,     array(   
            'Content-Type: string; charset=utf-8', 
        "Cache-Control: no-cache", 
        "Pragma: no-cache", 
    "SOAPAction: getProd",
    'Content-Length: '.strlen($post_string)
    ) );
$response = curl_exec($soap_do);
echo $response;
echo curl_error($soap_do);

【问题讨论】:

    标签: php web-services curl soap wsdl


    【解决方案1】:

    解决了。我意识到 NuSoap 和 SoapClient 会自动添加所需的肥皂信封。虽然在使用 Curl 时您必须手动执行此操作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-08
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多