Có sẵn công cụ nào cho PHP có thể sử dụng để tạo mã để tiêu thụ web service dựa trên WSDL không? Một cái gì đó có thể so sánh với việc nhấp vào "Thêm tham chiếu web" trong Visual Studio hoặc plugin Eclipse thực hiện điều tương tự cho Java.Cách dễ dàng tiêu thụ dịch vụ web từ PHP
Trả lời
Tôi đã thành công lớn với wsdl2php. Nó sẽ tự động tạo các lớp bao bọc cho tất cả các đối tượng và các phương thức được sử dụng trong dịch vụ web của bạn.
Vâng, các tính năng đó cụ thể cho công cụ bạn đang sử dụng để phát triển bằng các ngôn ngữ đó.
Bạn sẽ không có các công cụ đó nếu (ví dụ) bạn đang sử dụng notepad để viết mã. Vì vậy, có lẽ bạn nên đặt câu hỏi cho công cụ bạn đang sử dụng.
Đối với PHP: http://webservices.xml.com/pub/a/ws/2004/03/24/phpws.html
Tôi đã sử dụng NuSOAP trong quá khứ. Tôi thích nó bởi vì nó chỉ là một tập hợp các tệp PHP mà bạn có thể đưa vào. Không có gì để cài đặt trên máy chủ web và không có tùy chọn cấu hình nào để thay đổi. Nó có hỗ trợ WSDL cũng là một tiền thưởng.
Trong PHP 5, bạn có thể sử dụng SoapClient trên WSDL để gọi các chức năng dịch vụ web. For example:
$client = new SoapClient("some.wsdl");
và $ client bây giờ là đối tượng có phương thức lớp như được định nghĩa trong some.wsdl. Vì vậy, nếu có một phương pháp được gọi là getTime trong WSDL thì bạn sẽ chỉ gọi:
$result = $client->getTime();
Và kết quả (rõ ràng) là trong biến kết quả $. Bạn có thể sử dụng phương thức __getFunctions để trả về một danh sách tất cả các phương thức có sẵn.
Điều này là tốt nhưng để bắt đầu nhanh chóng sử dụng [wsdl2php-interpreter] (https://code.google.com/p/wsdl2php-interpreter/) –
Điều này article giải thích cách bạn có thể sử dụng PHP SoapClient để gọi dịch vụ web api.
HI Tôi nhận này từ trang web này: http://forums.asp.net/t/887892.aspx?Consume+an+ASP+NET+Web+Service+with+PHP
Các dịch vụ web có phương pháp Add
mà phải mất hai params:
<?php
$client = new SoapClient("http://localhost/csharp/web_service.asmx?wsdl");
print_r($client->Add(array("a" => "5", "b" =>"2")));
?>
Giả sử bạn đã được cung cấp như sau:
<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:int="http://thesite.com/">
<x:Header/>
<x:Body>
<int:authenticateLogin>
<int:LoginId>12345</int:LoginId>
</int:authenticateLogin>
</x:Body>
</x:Envelope>
và
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<authenticateLoginResponse xmlns="http://thesite.com/">
<authenticateLoginResult>
<RequestStatus>true</RequestStatus>
<UserName>003p0000006XKX3AAO</UserName>
<BearerToken>Abcdef1234567890</BearerToken>
</authenticateLoginResult>
</authenticateLoginResponse>
</s:Body>
</s:Envelope>
Hãy nói rằng việc tiếp cận http://thesite.com/ nói rằng địa chỉ WSDL là: http://thesite.com/PortalIntegratorService.svc?wsdl
$client = new SoapClient('http://thesite.com/PortalIntegratorService.svc?wsdl');
$result = $client->authenticateLogin(array('LoginId' => 12345));
if (!empty($result->authenticateLoginResult->RequestStatus)
&& !empty($result->authenticateLoginResult->UserName)) {
echo 'The username is: '.$result->authenticateLoginResult->UserName;
}
Như bạn có thể thấy, các mặt hàng được quy định trong XML được sử dụng trong mã PHP mặc dù giá trị loginId thể thay đổi.
- 1. Tiêu thụ dịch vụ WCF từ Oracle
- 2. tiêu thụ dịch vụ web WCF từ ứng dụng Android?
- 3. Tiêu thụ các dịch vụ web từ Oracle PL/SQL
- 4. Tiêu thụ các dịch vụ web JSON-RPC trong .NET
- 5. Tiêu thụ dịch vụ web có tệp WSDL và XSD
- 6. Tiêu thụ dữ liệu xml qua Dịch vụ Web C#
- 7. Tiêu thụ dịch vụ web SOAP trong ASP.NET
- 8. Dòng lệnh Curl để tiêu thụ dịch vụ web?
- 9. Tiêu thụ các dịch vụ web SOAP trên iOS
- 10. Tiêu thụ các dịch vụ web trong VB.NET
- 11. Mức tiêu thụ nội địa của các dịch vụ web
- 12. . Net Tiêu thụ Dịch vụ Web: Các loại giống nhau trong hai dịch vụ khác nhau
- 13. Cách dễ dàng để thử một dịch vụ WCF?
- 14. Tiêu thụ WebService với php
- 15. NuSOAP Dịch vụ Web PHP
- 16. Tiêu thụ dịch vụ WCF bằng cách sử dụng jQuery
- 17. Cách tốt nhất để trưng ra một dịch vụ WCF để nó có thể dễ dàng được tiêu thụ từ Java/CXF là gì?
- 18. Cách dễ dàng để tiêu thụ/hiển thị nguồn cấp dữ liệu RSS trong MVC ASP.NET
- 19. Đơn giản chỉ cần tiêu thụ một dịch vụ web trong Java
- 20. cách tiêu thụ dịch vụ wcf bằng ruby?
- 21. Triển khai nhanh chóng và dễ dàng dịch vụ web WCF, được cung cấp cho wsdl?
- 22. để dễ dàng thử dịch vụ an toàn
- 23. Cách thêm Tiêu đề Http tùy chỉnh cho Dịch vụ Web C# Khách hàng tiêu thụ dịch vụ Web 1.4 Axis
- 24. Có cách nào dễ dàng để cung cấp một Ứng dụng Web hoặc Dịch vụ Web dựa trên Matlab không?
- 25. Dịch vụ nào nhúng videoch dễ dàng trên một trang web?
- 26. Dịch vụ Windows Tăng mức tiêu thụ CPU
- 27. Làm thế nào để tiêu thụ không được lưu trữ trên IIS, WCF, dịch vụ web C# từ Delphi 2007?
- 28. Tiêu thụ dịch vụ WCF trong BizTalk 2006 R2
- 29. Làm thế nào để đơn vị kiểm tra một lớp tiêu thụ một dịch vụ web?
- 30. Cách truy cập dịch vụ web từ PowerShell?
Bom cố gắng phân tích VMWares vimService wsdl – Tim
Cập nhật: liên kết đã được thay đổi và hiện hoạt động, trỏ tới github, vì vậy người dùng đi qua không nên bỏ qua liên kết hoạt động vì nhận xét cũ (rất hữu ích, tại thời điểm) :) –