0

我正在尝试使用带有 HTTP_Request2 包的 PHP 将 SOAP 请求发布到 Oracle 数据库。看起来我得到了回应,但这不是我期望的回应。

我发出请求的代码如下:

$request = new HTTP_Request2();
        $request->setUrl($wsdl);
        $request->setMethod(HTTP_Request2::METHOD_POST);
        $request->setConfig(array(
          'follow_redirects' => TRUE
        ));
        $request->setHeader(array(
          'Content-Type' => 'text/xml'
        ));
        $request->setAuth('interface', 'Welcome2',);
        $request->setBody('<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://xmlns.oracle.com/apps/cdm/foundation/parties/customerAccountService/applicationModule/types/" xmlns:typ1="http://xmlns.oracle.com/adf/svc/types/"> <soapenv:Header/> <soapenv:Body> <typ:findCustomerAccount> <typ:findCriteria> <typ1:fetchStart>0</typ1:fetchStart> <typ1:fetchSize>1</typ1:fetchSize> <typ1:filter> <typ1:group> <typ1:item> <typ1:attribute>AccountNumber</typ1:attribute> <typ1:operator>STARTSWITH</typ1:operator> <typ1:value>UAT</typ1:value> </typ1:item> </typ1:group> </typ1:filter> </typ:findCriteria> <typ:findControl> <typ1:retrieveAllTranslations>false</typ1:retrieveAllTranslations> </typ:findControl> </typ:findCustomerAccount> </soapenv:Body> </soapenv:Envelope>');
        try {
          $response = $request->send();
          if ($response->getStatus() == 200) {
            echo $response->getBody();
          }
          else {
            echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
            $response->getReasonPhrase();
          }
        }
        catch(HTTP_Request2_Exception $e) {
          echo 'Error: ' . $e->getMessage();
        }

如果我只是在响应中使用 getBody 方法,我会收到以下输出: 在此处输出图像

如果我将 echo 切换到 var_dump 以更好地查看对象中的内容,它会在分解之前变得更有用:Var_Dump 结果

4

0 回答 0