Heim Backend-Entwicklung C#.Net-Tutorial Typisches Beispiel für den Aufruf eines PHP-Webdienstes mit .NET

Typisches Beispiel für den Aufruf eines PHP-Webdienstes mit .NET

Dec 15, 2016 pm 01:34 PM

Ein aktuelles Projekt wurde von „WinForm greift direkt auf DB2 zu“ auf „WinForm greift über den PHP-Webdienst auf DB2 zu“.

(Der Vorteil besteht darin, dass PHP unter Linux ausgeführt werden kann und Linux kostenlos ist)

Die Schwierigkeit dieses Vorschlags besteht nicht darin, auf DB2 zuzugreifen, sondern auf .NET, das den PHP-Webdienst aufruft. Für mich, eine Person, die schon lange mit .NET arbeitet und immer der Meinung ist, dass nur .NET Webservices ausführen kann, ist das wirklich etwas schwierig.

Aber das Problem muss noch gelöst werden und die Frist steht unmittelbar vor der Tür. Nach einiger Recherche habe ich endlich einen Hinweis bekommen, und jetzt teile ich ihn mit Ihnen.

Zunächst benötigt der PHP-Server mindestens zwei Dateien – eine WSDL-Datei und eine PHP-Datei. Die WSDL-Datei ist eine maschinenlesbare XML-Datei, die zur Beschreibung der von WebService bereitgestellten Dienste und Aufrufmethoden verwendet wird (für .NET kann der Aufrufcode automatisch generiert werden, was sehr einfach zu verwenden ist. Die PHP-Datei ist die echte). WEB-Dienst.

1) serverseitiger PHP-Code

1-1) TestWebService.php-Code

Das Folgende ist der zitierte Inhalt:

class TestWebService
{
öffentliche Funktion HelloWorld()
{
return array("HelloWorldResult"=>"Hello");
}

öffentliche Funktion GetArray( $ args) {
/*
Beachten Sie, dass die Webdienstmethode mindestens ein Parameter ist, wenn die Anweisung deklariert wird.
(Das ist sehr verwirrend. Nach meinem Verständnis fügt das System beim Aufrufen dieser Methode alle Parameter in ein Objekt ein und übergibt sie) value1 = $args->value1;

//The Der Rückgabewert ist ebenfalls etwas ganz Besonderes, anstatt $arry direkt zurückzugeben, fügen wir ihn in ein Objekt ein und geben ihn zurück.
        return array("GetArrayResult"=>$arry);

    }

}

//Eine WebSevice-Instanz erstellen
$server = new SoapServer("TestWebService.wsdl" ) ;

//Geben Sie den Klassennamen an

$server->setClass("TestWebService");

$server->handle();

?>




1-2) TestWebService.wsdl-Code

Das Folgende ist der zitierte Inhalt:



 
         
       
     

     
       
         
           
         

       

     

     
       
         
           
           
         

       
     

     
       
         .
       < s:element minOccurs="0" maxOccurs="1" name="GetArrayResult" type="tns:ArrayOfString" />
         

       

     

     
       
         
       

     

   

 

 
   
 

 
   
  < ;/wsdl:message>
 
   
 
 
   
 
 
   
     
     
   

   
     
     
   

 

     
   
     
     
       
     

     
       
     

   
   
     

       
     

     
       
     

   

 

 
   
   
     
     
       
     

     
       
         

   
     
     
       
     

     
       
     

   

 

  < wsdl:service name="TestWebService">
   
     
   

   
     
   

 


Bei vielen Methoden ist es unmöglich, den Code manuell einzugeben. Es gibt eine clevere Möglichkeit: Verwenden Sie .NET, um einen Webdienst ohne echten Methodenkörper zu implementieren, und verwenden Sie dann http://***/TestWebService.asmx? Die WSDL-Methode generiert eine WSDL-Codedatei.

Bezüglich der WSDL-Datei möchte ich zwei besondere Punkte erläutern:

(1) Der Knoten „soap:address“ ist die Adresse, an der der WebService deklariert wird, und er muss in geändert werden entsprechende Adresse während der Bereitstellung;

(2) Der deklarierte Typ des eindimensionalen Arrays ist ArrayOfType und der deklarierte Typ des String-Arrays ist ArrayOfString. Wenn Type kein einfacher Typ ist, muss Type separat deklariert werden.

2) .NET-Client-Code

Fügen Sie zunächst eine Webreferenz hinzu. Die Adresse ist die HTTP-Adresse der WSDL-Datei.

Aufrufcode (C#)

Das Folgende ist der zitierte Inhalt:                                         >                                                               ;



Zusammenfassung: (1) PHP ist eine schwach typisierte Sprache und es ist schwierig, sie auf Fehler zu überprüfen. Der Array-Typ unterscheidet sich auch vom allgemein verstandenen Array. Er wird auch ähnlich wie Hashtable verwendet.

(2) Die PHP-Webdienstmethode kann höchstens einen eingehenden Parameter und Rückgabewert haben, da die Parameter und der Rückgabewert beim tatsächlichen Aufruf alle in einem Objekt verpackt und übertragen werden.

(3) Der PHP-Webdienst unterstützt auch komplexe Typen wie benutzerdefinierte Typen und benutzerdefinierte Typ-Arrays, unterstützt jedoch nicht mehrere Arrays.

(4) Wenn der Rückgabewert mehrere zweidimensionale Tabellen sein muss, dachte ich oberflächlich, dass eine Reihe von String-Arrays übertragen werden können, und das Format ist

[Anzahl der Zeilen in Tabelle 1], [Anzahl der Spalten in Tabelle 1], [Spaltenname in Tabelle 1], [Spaltenname in Tabelle 1 2], ... [Spaltenname in Tabelle 1 N], [In Zeilen gespeicherte Werte und Spalten in Tabelle 1]

[Tabelle 2 Zeilen], [Tabelle 2 Spaltennummer], [Tabelle 2 Spaltenname 1], [Tabelle 2 Spaltenname 2], ...[Tabelle 2 Spaltenname N] , [In Zeilen und Spalten gespeicherte Werte von Tabelle 2]

……

[Zeilennummer der Tabelle M], [Spaltennummer der Tabelle M], [Spaltenname 1 der Tabelle M], [ Tabelle M Spaltenname 2], … [Tabelle M Spaltenname N], [In Zeilen und Spalten in Tabelle 2 gespeicherte Werte]

Das Obige ist das typische Beispiel für den Aufruf eines PHP-Webdienstes durch .NET Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Teilen Sie mehrere .NET-Open-Source-KI- und LLM-bezogene Projekt-Frameworks Teilen Sie mehrere .NET-Open-Source-KI- und LLM-bezogene Projekt-Frameworks May 06, 2024 pm 04:43 PM

Die Entwicklung von Technologien der künstlichen Intelligenz (KI) ist heute in vollem Gange und sie haben in verschiedenen Bereichen großes Potenzial und Einfluss gezeigt. Heute wird Dayao Ihnen 4 .NET Open-Source-KI-Modell-LLM-bezogene Projekt-Frameworks vorstellen und hofft, Ihnen einige Referenzen zu geben. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel ist ein Open-Source-Softwareentwicklungskit (SDK), das für die Integration großer Sprachmodelle (LLM) wie OpenAI und Azure entwickelt wurde

Wie sind die Berufsaussichten von C#? Wie sind die Berufsaussichten von C#? Oct 19, 2023 am 11:02 AM

Ganz gleich, ob Sie Anfänger oder erfahrener Profi sind: Die Beherrschung von C# ebnet den Weg für Ihre Karriere.

Leistungsunterschiede zwischen Java-Framework und .NET-Framework Leistungsunterschiede zwischen Java-Framework und .NET-Framework Jun 03, 2024 am 09:19 AM

In Bezug auf die Verarbeitung von Anforderungen mit hoher Parallelität bietet .NETASP.NETCoreWebAPI eine bessere Leistung als JavaSpringMVC. Zu den Gründen gehören: AOT-Frühkompilierung, die die Startzeit verkürzt, wobei Entwickler für die Zuweisung und Freigabe von Objektspeicher verantwortlich sind.

.NET-Leistungsoptimierungstechnologie für Entwickler .NET-Leistungsoptimierungstechnologie für Entwickler Sep 12, 2023 am 10:43 AM

Wenn Sie ein .NET-Entwickler sind, müssen Sie sich der Bedeutung der Optimierung von Funktionalität und Leistung bei der Bereitstellung hochwertiger Software bewusst sein. Durch den fachgerechten Einsatz der bereitgestellten Ressourcen und die Verkürzung der Ladezeiten der Website schaffen Sie nicht nur ein angenehmes Erlebnis für Ihre Nutzer, sondern senken auch die Infrastrukturkosten.

C# .NET -Interview Fragen und Antworten: Stufen Sie Ihr Fachwissen auf C# .NET -Interview Fragen und Antworten: Stufen Sie Ihr Fachwissen auf Apr 07, 2025 am 12:01 AM

C#.NET -Interviewfragen und Antworten umfassen Grundkenntnisse, Kernkonzepte und erweiterte Nutzung. 1) Grundkenntnisse: C# ist eine von Microsoft entwickelte objektorientierte Sprache und wird hauptsächlich im .NET-Framework verwendet. 2) Kernkonzepte: Delegation und Ereignisse ermöglichen dynamische Bindungsmethoden, und LINQ bietet leistungsstarke Abfragefunktionen. 3) Erweiterte Verwendung: Asynchrone Programmierung verbessert die Reaktionsfähigkeit und Expressionsbäume werden für die dynamische Codekonstruktion verwendet.

Advanced C# .NET Tutorial: Ace Ihr nächstes Senior Developer Interview Advanced C# .NET Tutorial: Ace Ihr nächstes Senior Developer Interview Apr 08, 2025 am 12:06 AM

Das Interview mit C# Senior Developer erfordert das Mastering von Kernwissen wie asynchrones Programmieren, LINQ und interne Arbeitsprinzipien von .NET -Frameworks. 1. Asynchrones Programmieren vereinfacht die Operationen durch Async und wartet auf die Verbesserung der Anwendungsreaktionsfähigkeit. 2.LinQ betreibt Daten im SQL -Stil und achtet auf die Leistung. 3. Die CLR des Net -Frameworks verwaltet den Speicher, und die Müllsammlung muss mit Vorsicht verwendet werden.

C# .NET: Erforschen von Kernkonzepten und Programmierfundamentaldaten C# .NET: Erforschen von Kernkonzepten und Programmierfundamentaldaten Apr 10, 2025 am 09:32 AM

C# ist eine moderne, objektorientierte Programmiersprache, die von Microsoft und als Teil des .NET-Frameworks entwickelt wurde. 1.C# unterstützt die objektorientierte Programmierung (OOP), einschließlich Einkapselung, Vererbung und Polymorphismus. 2. Asynchrones Programmieren in C# wird über Async implementiert und wartet auf Schlüsselwörter, um die Reaktionsfähigkeit der Anwendungen zu verbessern. 3.. Verwenden Sie LINQ, um Datensammlungen präzise zu verarbeiten. 4. Häufige Fehler umfassen Null-Referenzausnahmen und Indexausnahmen außerhalb des Bereichs. Zu den Debugging -Fähigkeiten gehört die Verwendung eines Debuggers und Ausnahmeberechnung. 5. Leistungsoptimierung umfasst die Verwendung von StringBuilder und das Vermeiden von unnötigem Packung und Unboxing.

C# Code in .NET: Erforschen des Programmiervorgangs C# Code in .NET: Erforschen des Programmiervorgangs Apr 12, 2025 am 12:02 AM

Der Programmierungsprozess von C# in .NET enthält die folgenden Schritte: 1) Schreiben von C# Code, 2) Kompilieren in eine mittlere Sprache (IL) und 3), die durch die .NET -Laufzeit (CLR) ausführt. Die Vorteile von C# in .NET sind die moderne Syntax, das leistungsstarke Typsystem und die enge Integration in das .NET -Framework, das für verschiedene Entwicklungsszenarien geeignet ist, von Desktop -Anwendungen bis hin zu Webdiensten.

See all articles