douba3975 2012-08-17 06:16
浏览 43
已采纳

在PHP中使用SOAP寻求帮助[关闭]

I work in PHP, but never worked with things like SOAP. But today my managaer told me to fetch request from following SOAP request. As I don't know what is SOAP and what it's used for and even how to use it in my page. Can someone please tell me how can I make request a request from this sample request? Thanks. I tried searching google, but no relevant results were found.

POST /TestService/Service.asmx HTTP/1.1
Host: 123.12.12.123
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://abc.com/Mobile"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <Mobile xmlns="http://abc.com/">
      <str>string</str>
    </Mobile>
  </soap:Body>
</soap:Envelope>

length and string are placeholders.

  • 写回答

2条回答 默认 最新

  • download20151010 2012-08-17 07:01
    关注

    Here is a very useful library, go to this page and download it: http://sourceforge.net/projects/nusoap/files/

    Here's one of the examples provided by the developers:

    require_once('lib/nusoap.php');
    $proxyhost = isset($_POST['proxyhost']) ? $_POST['proxyhost'] : '';
    $proxyport = isset($_POST['proxyport']) ? $_POST['proxyport'] : '';
    $proxyusername = isset($_POST['proxyusername']) ? $_POST['proxyusername'] : '';
    $proxypassword = isset($_POST['proxypassword']) ? $_POST['proxypassword'] : '';
    $client = new soapclient('http://www.xignite.com/xquotes.asmx?WSDL', true,
                            $proxyhost, $proxyport, $proxyusername, $proxypassword);
    $err = $client->getError();
    if ($err) {
        echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
    }
    // Doc/lit parameters get wrapped
    $param = array('Symbol' => 'IBM');
    $result = $client->call('GetQuickQuotes', array('parameters' => $param), '', '', false, true);
    // Check for a fault
    if ($client->fault) {
        echo '<h2>Fault</h2><pre>';
        print_r($result);
        echo '</pre>';
    } else {
        // Check for errors
        $err = $client->getError();
        if ($err) {
            // Display the error
            echo '<h2>Error</h2><pre>' . $err . '</pre>';
        } else {
            // Display the result
            echo '<h2>Result</h2><pre>';
            print_r($result);
            echo '</pre>';
        }
    }
    echo '<h2>Request</h2><pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>';
    echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>';
    echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>';
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失