首页 > 解决方案 > php中的soapUI WSDL webservices得到500响应

问题描述

在此处输入图像描述 我的代码:

<?php 

        $soapUrl = "https://example.com/server.php?wsdl"; 

        $xml_post_string = '<?xml version="1.0" encoding="utf-8"?>
                            soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mob="http://wigi.iseek.com.au/b2b/wigi/mobilevoice">
                           <soapenv:Header/>
                           <soapenv:Body>
                              <mob:GetPlans>
                                 <getPlansRequest>
                                    <accountID>555</accountID>
                                 </getPlansRequest>
                              </mob:GetPlans>
                              <soap:Fault>
                        </soap:Fault>
                           </soapenv:Body>
                        </soapenv:Envelope>'; 

           $headers = array(
                        "Content-type: text/xml;charset=\"utf-8\"",
                        "Accept: text/xml",
                        "Cache-Control: no-cache",
                        "Pragma: no-cache",
                        "SOAPAction: http://wigi.iseek.com.au/b2b/wigi/mobilevoice/GetPlans", 
                        "Content-length: ".strlen($xml_post_string),
                    ); //SOAPAction: your op URL

            $url = $soapUrl;
         $clientcert  = "/home/example/ssl/csrs/client.pem"; 
        $keyfile     =  "/home/example/ssl/keys/key.pem"; 
        $challenge    = "QAZXSW"; 
            // PHP cURL  for https connection with auth
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

            curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
            curl_setopt($ch, CURLOPT_TIMEOUT, 10);
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string); // the

SOAP 请求

          curl_setopt($ch, CURLOPT_SSLCERT, $clientcert); 
          curl_setopt($ch, CURLOPT_SSLCERTPASSWD, $challenge); 
          curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM'); 
          curl_setopt($ch, CURLOPT_SSLKEY, $keyfile);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

        // converting
        $response = curl_exec($ch);
        $n=curl_getinfo($ch);
        print_r($n);
        curl_close($ch);

        // converting
        $response1 = str_replace("<soap:Body>","",$response);
        $response2 = str_replace("</soap:Body>","",$response1);

        // convertingc to XML
        $parser = simplexml_load_string($response2);
        // user $parser to get your data out of XML response and to display it.
?>

我的输出:

数组 ( [url] => https://example.com.au/testservice/server.php?wsdl [content_type] => text/xml; charset=utf-8 [http_code] => 500 [header_size] => 277 [request_size] => 743 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.056019 [namelookup_time] => 0.004583 [connect_time] => 0.004818 [pretransfer_time] => 0.034581 [ size_upload] => 484 [size_download] => 278 [speed_download] => 4964 [speed_upload] => 8642 [download_content_length] => 278 [upload_content_length] => 484 [starttransfer_time] => 0.055833 [redirect_time] => 0 [redirect_url] => [primary_ip] => 104.252.153.31 [certinfo] => 数组 () [primary_port] => 443 [local_ip] => 104.252.153.31 [local_port] => 34821)

我是卷曲的 saopui 新手,请帮助我

标签: phpsslcurlsoapwsdl

解决方案


推荐阅读