Hướng dẫn how to consume soap webservice in php - cách sử dụng dịch vụ web xà phòng trong php

Ở đây tôi sẽ chỉ cho bạn cách tiêu thụ dịch vụ web xà phòng theo PHP theo 3 cách. Để tiêu thụ dịch vụ web xà phòng, bạn phải có một dịch vụ web xà phòng được triển khai trên máy chủ. Ở đây tôi sẽ tiêu thụ hoặc gọi dịch vụ SOAP đã sẵn sàng trên Internet. Tôi đang gọi celsiustofahrenheit chuyển đổi nhiệt độ từ Celsius thành Fahrenheit.CelsiusToFahrenheit which converts temperature from celsius to fahrenheit.

Bạn cũng có thể tạo dịch vụ của riêng bạn và viết một ứng dụng khách xà phòng để tiêu thụ dịch vụ. Phương pháp tiêu thụ tương tự như những gì tôi sẽ cho bạn thấy ở đây. WSDL có sẵn tại liên kết //www.w3schools.com/xml/tempconvert.asmx?wsdl.

Bài viết liên quan:

  • Tạo và tiêu thụ dịch vụ web xà phòng bằng PHP

Điều kiện tiên quyết

Apache HTTP Server 2.4, Php 7.4.3, Thư viện NUSOAP, Curl

Định cấu hình xà phòng PHP

Tiêu thụ dịch vụ xà phòng

Tôi sẽ chỉ cho bạn ở đây 3 cách gọi hoặc tiêu thụ dịch vụ web xà phòng khác nhau. Phương pháp đầu tiên là sử dụng SoapClient, phương pháp thứ hai là sử dụng thư viện NUSOAP và phương pháp thứ ba là sử dụng Curl.

Sử dụng xà phòng

Sử dụng xà phòng, bạn không cần sử dụng bất kỳ thư viện của bên thứ ba nào vì SOAPClient đã có sẵn trong động cơ PHP.

Mã PHP sau đây sử dụng SoapClient gọi phương pháp chuyển đổi Celsius sang Fahrenheit và sẽ cung cấp cho bạn nhiệt độ trong Fahrenheit cho đầu vào đã cho ở Celsius.

$wsdl   = '//www.w3schools.com/xml/tempconvert.asmx?WSDL';
$client = new SoapClient[$wsdl, array['trace'=>1]];  // The trace param will show you errors

$input_celsius = 36;
// web service input param
$request_param = array[
    'Celsius' => $input_celsius
];

try {
    $responce_param = $client->CelsiusToFahrenheit[$request_param];
	echo $input_celsius . ' Celsius => ' . $responce_param->CelsiusToFahrenheitResult . ' Fahrenheit';
} catch [Exception $e] { 
    echo "

Exception Error

"; echo $e->getMessage[]; }

Sử dụng Nusoap

Đây là thư viện của bên thứ ba và sử dụng nó, bạn có thể tiêu thụ dịch vụ xà phòng. Thư viện được vận chuyển với mã nguồn cho ví dụ này và bạn có thể tải xuống từ cuối hướng dẫn này trong phần mã nguồn.

require_once['lib/nusoap.php'];

$wsdl   = "//www.w3schools.com/xml/tempconvert.asmx?WSDL";
$client = new nusoap_client[$wsdl, 'wsdl'];

$action = "CelsiusToFahrenheit"; // webservice method name

$result = array[];

$input_celsius = 36;
$input = '' . $input_celsius . '';

if [isset[$action]]
{
    $result['response'] = $client->call[$action, $input];
}

//echo $result['response']['CelsiusToFahrenheitResult'];
echo $input_celsius . ' Celsius => ' . $result['response']['CelsiusToFahrenheitResult'] . ' Fahrenheit';

Sử dụng Curl

Sử dụng lệnh Curl, bạn cũng có thể gọi dịch vụ SOAP như trong ví dụ sau.

Trong thông báo ví dụ sau, tôi chỉ sử dụng URL dịch vụ web thay vì URL WSDL nhưng trong hai ví dụ trên tôi đã sử dụng URL WSDL.

$webservice_url = "//www.w3schools.com/xml/tempconvert.asmx";

$input_celsius = 36;

$request_param = '

  
    
      ' . $input_celsius . '
    
  
';

$headers = array[
    'Content-Type: text/xml; charset=utf-8',
    'Content-Length: '.strlen[$request_param]
];

$ch = curl_init[$webservice_url];
curl_setopt [$ch, CURLOPT_POST, true];
curl_setopt[$ch, CURLOPT_HTTPHEADER, $headers];
curl_setopt [$ch, CURLOPT_POSTFIELDS, $request_param];
curl_setopt[$ch, CURLOPT_RETURNTRANSFER, true];
curl_setopt[$ch, CURLOPT_SSL_VERIFYHOST, false];
curl_setopt[$ch, CURLOPT_SSL_VERIFYPEER, false];

$data = curl_exec [$ch];

$result = $data;

if [$result === FALSE] {
    printf["CURL error [#%d]: %s
\n", curl_errno[$ch], htmlspecialchars[curl_error[$ch]]]; } curl_close [$ch]; echo $input_celsius . ' Celsius => ' . $data . ' Fahrenheit';

Kiểm tra ứng dụng

Đảm bảo rằng máy chủ HTTP Apache của bạn đang hoạt động. Bây giờ bạn có thể thực thi bất kỳ mã nào trên và cho mỗi ví dụ, bạn sẽ thấy ví dụ sau trên trình duyệt.

Đó là tất cả, hy vọng bạn có một ý tưởng về cách gọi hoặc tiêu thụ dịch vụ web xà phòng bằng ngôn ngữ lập trình PHP.

Mã nguồn

Tải xuống

Làm thế nào để bạn tiêu thụ một dịch vụ xà phòng?

Tiêu thụ một dịch vụ web xà phòng..
Trong tab Logic, hãy mở thư mục tích hợp ..
Nhấp chuột phải vào phần tử xà phòng và chọn tiêu thụ dịch vụ web xà phòng .....
Trong hộp thoại được hiển thị, chỉ định vị trí của định nghĩa dịch vụ web [WSDL] và nhấp vào tiêu thụ ..

Làm thế nào để thực hiện cuộc gọi xà phòng trong PHP?

Để thực hiện các yêu cầu SOAP đến điểm cuối API SOAP, hãy sử dụng tiêu đề yêu cầu "Loại nội dung: Ứng dụng/SOAP+XML", cho máy chủ biết rằng thân yêu cầu chứa một phong bì SOAP.Máy chủ thông báo cho máy khách rằng họ đã trả lại một phong bì SOAP với tiêu đề phản hồi "loại nội dung: Ứng dụng/SOAP+XML".use the "Content-Type: application/soap+xml" request header, which tells the server that the request body contains a SOAP envelope. The server informs the client that it has returned a SOAP envelope with a "Content-Type: application/soap+xml" response header.

Làm cách nào để kết nối với API SOAP?

Tạo API SOAP..
Tải xuống tài khoản tệp WSDL SOAP.....
Trong Trình quản lý API, nếu trước đây bạn chưa ghim ngăn điều hướng UI thì hãy nhấp vào biểu tượng Điều hướng đến biểu tượng.....
Nhấp vào bản nháp trong ngăn điều hướng UI và sau đó nhấp vào tab API.....
Nhấp vào Thêm> Mới Openapi từ Dịch vụ SOAP ..
Nhấp vào Tải lên tệp ..

Giao thức xà phòng trong PHP là gì?

Xà phòng là viết tắt của giao thức truy cập đối tượng đơn giản.Xà phòng là một giao thức truyền thông ứng dụng.Xà phòng là một định dạng để gửi và nhận tin nhắn.Xà phòng là nền tảng độc lập.Simple Object Access Protocol. SOAP is an application communication protocol. SOAP is a format for sending and receiving messages. SOAP is platform independent.

Bài Viết Liên Quan

Chủ Đề