簡體   English   中英

Php Soap 請求 - 不支持的媒體類型

[英]Php Soap request - UnSupported Media Type

我正在嘗試在 PHP 中使用 SOAPClient 從函數中獲取一些值。 我已經創建了代碼,但是我收到錯誤“不支持的媒體類型”。

我試過研究這個問題,發現標題中的 SOAP 版本或 Content-type 可能是問題。我想知道我是否可以使用下面的代碼 -

希望有人可以提供幫助。 謝謝 C

<?php
error_reporting(E_ALL);



try{
header("Content-type: application/soap+xml; charset=utf-8");
$client = new 
SoapClient("https://www1.gsis.gr/wsaade/RgWsPublic2/RgWsPublic2?WSDL", 
array("trace" => true, '
exceptions' => 1));
//    $client->__getTypes();
//    $client->__getFunctions();

//    $result = $client->functionName();

$params = new SoapVar('
<?xml version="1.0" encoding="utf-8"?><env:Envelope 
xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns
:ns1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity- 
secext-1.0.xsd" xmlns:ns2="http://rgwspublic2/RgWsPublic2Service" 
xmlns:ns3="http://rgwspublic2/RgWsPublic2">
<env:Header>
  <ns1:Security>
       <ns1:UsernameToken>
           <ns1:Username>******</ns1:Username>
           <ns1:Password>******</ns1:Password>
     </ns1:UsernameToken>
  </ns1:Security>
   </env:Header>
  <env:Body>
  <ns2:rgWsPublic2AfmMethod>
     <ns2:INPUT_REC>
        <ns3:afm_called_by/>
        <ns3:afm_called_for>******</ns3:afm_called_for>
     </ns2:INPUT_REC>
  </ns2:rgWsPublic2AfmMethod>
 </env:Body>
</env:Envelope>', XSD_ANYXML);

    $result = $client->__soapCall('rgWsPublic2AfmMethod', array($params));
    highlight_string($client->__getLastRequest());
}

catch(SoapFault $fault){
    die("SOAP Fault:<br />fault code: {$fault->faultcode}, fault string: 
{$fault->faultstring}");
}

添加 - SoapClient(" https://www1.gsis.gr/wsaade/RgWsPublic2/RgWsPublic2?WSDL ", array("soap_version"=> SOAP_1_2,"trace" => true, "exceptions" => 1))

確保請求使用 SOAP 1.2 版。

我來晚了,但這是使用此服務的方法。 這是一項從希臘稅務機關返回有關企業信息的服務。 $AFMcallby 是調用者的增值稅號,$AFMCall 是您感興趣的增值稅號,以及您通過注冊服務獲得的用戶名/密碼。

function checkVATGR($username,$password,$AFMcalledby="",$AFMcalledfor)
{
    $client = new SoapClient( "https://www1.gsis.gr/wsaade/RgWsPublic2/RgWsPublic2?WSDL",array('trace' => true, 'soap_version'=>SOAP_1_2) );


    $authHeader = new stdClass();
    $authHeader->UsernameToken=new stdClass();
    $authHeader->UsernameToken->Username = "$username";
    $authHeader->UsernameToken->Password = "$password";
    $Headers[] = new SoapHeader('http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd', 'Security', $authHeader,TRUE);
    $client->__setSoapHeaders($Headers);

    $result = $client->rgWsPublic2AfmMethod(
        array("INPUT_REC" => array(
            'afm_called_by'=>"$AFMcalledby",
            'afm_called_for'=>"$AFMcalledfor"
            ))
        );

    return $result;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM