PHP'nin SoapClient üzeri. NET web hizmeti için bir nesneyi Passing

2 Cevap ûnet

Benim şirket SABUN yoluyla ulaşılabilir. NET webservices bir dizi yayınlıyor. Ben bu içine benim PHP uygulama bağlamak gerekir, ama ben bir çözüm bulamıyorum bir sorunla karşı darbeleme ediyorum. Ben erişmesi gereken hizmetlerden biri Advertiser CreateAdvertiser ( Advertiser advertiser ) bir imzası vardır.

Nasıl ben (Reklamveren) yok bir nesnenin bir örneği geçebilir? I stdClass() bir örneğini oluşturma ve. NET Reklamveren gerekli özellikleri atama denedim, ama bu uçan değil. Her nasılsa, ben hizmet tanımak ve birlikte o geçecek bir nesne oluşturmak gerekir. Herhangi bir konuda gitmek nasıl bir fikir?

Ben tabii, PHP için SoapClient sınıfını kullanıyorum.

Çok takdir.

Basit scalars ne de karmaşık türleri ne - UPDATE: deneme yanılma bir sürü sonra, nihayet sorunun ilk bölümü hiçbir parametre geçirilen ediliyor olduğunu tespit ettik. array ( 'name1' => 'val1', 'name2' => 'val2' ) ve isimsiz, ama bir dökümü __getLastRequest boş bir yöntem çağrısı göstermektedir: Ben adlandırılmış params kullanarak denedim:

...<SOAP-ENV:Body><ns1:CreateAdvertiser/></SOAP-ENV:Body>...

Ben bir sonraki endişesi önce bu sorunu çözmek gerekiyor bence.

2 Cevap

Yani burada cevap, en azından ben aramaya çalışıyorum hizmetler için, basit ve acı verici. Bu sadece diziler bir sürü içerir.

$user = AdvertiserProxy->CreateAdvertiser ( 
   array (
      'advertiser' => array (
         'Name' => 'Advertiser Name',
         'IndustryCodeList' => array (
            'Agency',
            'Fortune 500'
         )
      )
   )
);

advertiser "nesne" parçalarının sadece toplamıdır.

Ben bir kez yapmak zorunda. PHP kullanarak bir istemci, bir web hizmeti kullanarak sorunları olmamdı. Ben xml genelinde geliyor nasıl yakalamak için Fiddler kullanılan (o ben düşünüyorum, NuSOAP kullanıyordum). Biz biliyordu sonra, o, xml araya sabun zarfı eklemek, içerik uzunluğu başlığını ayarlamak ve başarıyla teslim olabilir.

PHP veya Java kullanamazsınız bir web servisi oluşturmak için yol çok kolay.