Membuat permintaan SOAP

Saya baru mengenal PHP - Memulai kurang lebih sebulan yang lalu dengan PHP, JS dan HTML dengan beberapa jam sehari.

Saya telah melakukan banyak pekerjaan rumah mengenai hal ini tetapi tidak dapat mengambil keputusan secara matang dalam hal penerapannya. Saya tidak memiliki programmer tangguh yang bisa duduk bersama saya dalam hal ini, oleh karena itu di sini. Tapi saya yakin jika pertanyaan ini terjawab, itu akan membantu banyak programmer pemula dan berpengalaman di sana

Masalahnya - Saya dapat memahami konsep SOAP tetapi tidak dapat mengetahui cara membuat permintaan sabun sederhana. Apa saja langkah-langkah dalam PHP.

//ekstensi SOAP php diinstal dengan benar

Buat klien SOAP baru:

$variable = new SoapClient ;

$inputxml = " the input XML file as a string ";

varibale__doRequest($input xml, "string location -??

Saya memiliki input XML sebagai variabel.. lokasi apa yang saya tentukan.. perlu mengaktifkan cache dan lokasi cache ??,...) Itulah fungsi php yang saya coba gunakan - cara menggunakan ini http://www.php.net/manual/en/soapclient.dorequest.php

// Kode PHP untuk mendapatkan respon sebagai XML // Cara menyimpan respon dalam variabel sebagai string

Adakah yang bisa mendemonstrasikan permintaan SOAP sederhana menggunakan PHP di blog.

Saya tidak dapat menemukan satu contoh, semua fokus pada pembuatan layanan SOAP atau server SOAP.. Saya hanya ingin membuat klien SOAP dan membuat permintaan dalam PHP - panduan laymnas terperinci - khusus PHP ??

Ini adalah layanan SOAP yang saya geluti - Temukan Perusahaan berdasarkan Kata Kunci di

http://developer.dnb.com/service-directory/sales/16682663-1.html

Jika seseorang dapat menulis satu postingan blog yang menjelaskan detailnya, saya akan sangat berterima kasih

PS: Tidak yakin apakah rasa frustrasi saya bisa dibenarkan, tetapi konsep SOAP dan REST membuat pemrograman terdengar seperti Ilmu Roket.. Saya telah menghabiskan lebih dari seminggu, 8 jam sehari, tidak memiliki gagasan yang jelas untuk membuat permintaan SOAP meskipun saya memiliki pemahaman yang adil dari konsep SABUN. Sejauh REST berjalan, saya sangat bingung - saya tidak ingin menyentuh benda itu di sini saat ini.


person Community    schedule 13.07.2012    source sumber


Jawaban (2)


Ada klien sabun php tetapi Anda tidak HARUS menggunakannya.. Anda dapat membuat permintaan secara manual dan mempostingnya dengan curl, Anda kemudian dapat mengurai responsnya sesuka Anda.

/**
* Request login body
*/
const REQUEST_LOGIN = '<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://www.company.com/soap" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding">
 <env:Body>
  <ns1:RequestLogin xmlns:ns1="http://www.company.com/soap">
   <ns1:Name>%username%</ns1:Name>
   <ns1:OrgId>0</ns1:OrgId>
   <ns1:AuthType>simple</ns1:AuthType>
  </ns1:RequestLogin>
 </env:Body>
</env:Envelope>
';
person Vince Lowe    schedule 14.07.2012

SOAP di PHP sedikit lebih mudah dari kelihatannya. Jika Anda mencari tutorial bentuk panjang, ada tutorial bagus di DevZone. Saya juga akan menyimpan dokumentasi kelas SoapClient.

Inti dari bekerja dengan Sabun

// $endpoint is the callback/uri of the WSDL.
// $options is an array of options.
$client = new SoapClient($endpoint, $options);

Anda dapat mempelajari lebih lanjut tentang opsi dan titik akhir di detail konstruktor .

PHP memiliki beberapa metode ajaib dan __call adalah salah satunya. Cara termudah untuk menggunakan SOAP adalah dengan memanggil metode yang tersedia. Misalnya:

$response = $client->getLoginToken(array(
    'siteid' => 'foo',
    'secid' => 'bar',
));

Dalam hal ini getLoginToken adalah pemanggilan metode SOAP. Klien SOAP melihat bahwa itu bukan metode pada objek dan meneruskannya sebagai metode ke SOAP. Array yang diteruskan adalah argumen untuk diteruskan ke titik akhir SOAP sebagai argumen.

Saya juga akan memeriksa contoh di halaman soapCall. Semoga berhasil.

person Matt Farina    schedule 13.07.2012