Heim  >  Artikel  >  Backend-Entwicklung  >  Was tun, wenn der PHP-Webservice verstümmelt ist?

Was tun, wenn der PHP-Webservice verstümmelt ist?

藏色散人
藏色散人Original
2020-08-28 09:51:011852Durchsuche

Lösung für verstümmelten PHP-Webservice: Öffnen Sie zuerst die Datei „nusoap.php“ und ändern Sie dann den Inhalt in „var $soap_defencoding = ‚UTF-8‘;“ und „var $decode_utf8 = false;“.

Was tun, wenn der PHP-Webservice verstümmelt ist?

Empfohlen: „PHP-Video-Tutorial

php-Lösung zum Aufrufen verstümmelter chinesischer Webservice-Zeichen

Aus beruflichen Gründen habe ich meinem Kollegen A Tao geholfen, die Anwendung von .net Webservice unter PHP zu testen Ich habe im Internet nach Informationen gesucht und festgestellt, dass viele PHP-Tutorials Nusoap verwenden. Die Download-Adresse finden Sie im Anhang am Ende des Artikels wie folgt:

rrree

Wenn der von meinem Webservice zurückgegebene Inhalt kein Chinesisch enthält, ist das obige Beispiel erfolgreich. Wenn jedoch der von meinem Webservice zurückgegebene Inhalt Chinesisch enthält, wird der zurückgegebene Wert angezeigt verstümmelt. Schauen Sie sich das Ergebnis der Antwort an. Es sollte ein Problem bei der Verarbeitung mit nusoap geben. Da ich das PHP-Breakpoint-Debugging-Tool nicht installiert habe, weiß ich nicht einmal, ob es ein solches gibt ein Tool), also gibt es nur eine Methode, eine. Nachdem ich sie mir einen Tag lang angesehen habe, habe ich sie endlich fertiggestellt. Ich habe zwei Stellen in nusoap.php geändert und sie war in Ordnung.

Geänderte Stellen:

rrree

Sie können es auch unverändert lassen, aber Sie müssen die Codierung beim Aufruf angeben.

<?php 
require_once(&#39;../nusoap/lib/nusoap.php&#39;); 
$client = new soapclient(&#39;http://localhost/TestService/Service1.asmx?WSDL&#39;, true); 
$err = $client->getError(); 
if ($err) { 
echo &#39;<h2>Constructor error</h2><pre class="brush:php;toolbar:false">&#39; . $err . &#39;
'; } // Doc/lit parameters get wrapped $param = array('str' => 'China'); $result = $client->call('HelloWorld', array('parameters' => $param), '', '', false, true,'document','encoded'); // Check for a fault if ($client->fault) { echo '

Fault

&#39;; 
print_r($result); 
echo &#39;
'; } else { // Check for errors $err = $client->getError(); if ($err) { // Display the error echo '

Error

&#39; . $err . &#39;
'; } else { // Display the result echo '

Result

&#39;; 
  print_r($result); 
  echo &#39;
'; } } echo '

Request

&#39; . htmlspecialchars($client->request, ENT_QUOTES) . &#39;
'; echo '

Response

&#39; . htmlspecialchars($client->response, ENT_QUOTES) . &#39;
';//开源代码最模板zuimoban.com echo '

Debug

&#39; . htmlspecialchars($client->debug_str, ENT_QUOTES) . &#39;
'; ?>

Der Effekt ist der gleiche. Wenn die Parameter in der Anfrage auf Chinesisch sind, senden Sie sie einfach per Post oder holen Sie sie ab Parameter auf Chinesisch im Code müssen Sie die Kodierung in UTF8 konvertieren. Möglicherweise Referenzanhang.

Das obige ist der detaillierte Inhalt vonWas tun, wenn der PHP-Webservice verstümmelt ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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