PHP SOAP Özellikler. Net Web Hizmeti

0 Cevap php

Ben anlayabileceği bir cevap arıyorum iyi bir hafta geçirdim. Ben web gelişmekte olan dünya için oldukça yeni.

Benim sorunum elemanlarının kendileri gibi ayarlanmış olması özniteliklerin değerleri gerektiren bir sabun mesajı üreten aittir.

İşte oluşturmak çalışıyorum SOAP mesajının bir basitleştirilmiş bir örnektir.

Client = PHP
Server = .NET

SOAP mesajı gerekli:

 <PingRequest EchoToken="string">
      <EchoData>string</EchoData>
 </PingRequest>

WSDL bölüm

  <s:element name="PingRequest" type="s0:PingRequest" />
  <s:complexType name="PingRequest">
    <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="EchoData" type="s:string" />
    </s:sequence>
    <s:attribute name="EchoToken" type="s:string" />
  </s:complexType>

Ben webcoder geçmek için bir sınıf ve diğer nesneler, ancak, beynim beni başarısız yapmak için nasıl anlamaya çalışırken çok geçirdim. Özür dilemek sorum biraz karanlık ise. İşte benim webservice çağırarak benim girişimi:

    <?php
    //connection to wsdl
    $client = new SoapClient('http://localhost/ws.asmx?wsdl',
                array(  "trace"          => 1,
                        "exceptions"     => 0
                ));

    try {
        // Ping = Function
        // PingRequest = method?
        $result = $client->PingRequest(array('EchoData' => 'moo'));

    } catch (SOAPFAULT $f){
    }

    echo "\n The Result: \n";
    print_r($result);

    print "<pre>";
    print "Request :\n".htmlspecialchars($client->__getLastRequest()) ."\n";
    print "Response:\n".htmlspecialchars($client->__getLastResponse())."\n";
    print "</pre>";
    ;

?>

İstek:

<ns1:PingRequest>
   <ns1:EchoData>moo</ns1:EchoData>
</ns1:PingRequest>

Herhangi bir yardım bir başparmak yukarıya.

EDIT: thanks to lisa: i was able to create a class for this: but i still dont understand

class PingRequest {
  public $EchoData; // string
  public $EchoToken; // string
  public $TimeStamp; // dateTime
  public $Target; // PingTarget
  public $Version; // decimal
  public $TransactionIdentifier; // string
  public $SequenceNmbr; // nonNegativeInteger
  public $TransactionStatusCode; // PingRequestStatusCode
  public $RetransmissionIndicator; // boolean
}

çok kolay. teşekkür ederim

Webcoder sınıfın adı ile yeni bir sınıf değişkeni oluşturun ve sonra her eleman için stdclasses oluşturmak veya geçmek isteyen bağlıyor. (Lisa verilen sınıf jeneratör kullanmanız gerekir.

0 Cevap