WinFuture-Forum.de: Php Zugriff Auf .net Wcf Webservice - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Php Zugriff Auf .net Wcf Webservice Fehler bei Parameterübergabe


#1 Mitglied ist offline   bLaCkRaBbIt 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.433
  • Beigetreten: 08. November 04
  • Reputation: 2
  • Geschlecht:Männlich
  • Wohnort:Karlsbad

geschrieben 06. Februar 2009 - 09:53

Hi Leute,

ich bin schier am verzweifeln. Ich habe einen WCF Webservice geschrieben und biete verschiedene Bindings an. Unter anderem eines für den PHP Zugriff. In diesem Fall handelt es sich um ein basicHTTPBinding. Die einfache Parameterübergabe funktioniert, d.h. meine Webservice-Funktionen, die lediglich einen Übergabeparameter benötigen, können problemlos in PHP aufgerufen werden. Sobald ich aber eine Funktion mit 2 Parametern aufrufen will, klappt es nicht mehr. Also kurzes Beispiel:

<OperationContract()> _
Function GetStringData(ByVal value As String) As String 'funktioniert
<OperationContract()> _
Function GetData(ByVal value As Integer, ByVal value1 As Integer) As String 'funktioniert nicht/unvollständig


Die Funktion GetData wird zwar ausgeführt, aber der zweite Parameter wird nicht erkannt bzw. verwendet. Den ersten Parameter hingegen schluckt die Funktion anstandslos.

Das Problem habe ich auch identifiziert (siehe http://www.phpforum......anzeigen.html):

"..das hängt damit zusammen, dass ein .NET - Webservice als default document style benutzt. Das Problem hierbei ist, dass du RPC Style benutzt."

Da die Lösung auf der Seite nicht funktioniert: Wie kann ich denn das Problem lösen? Vermutlich muss das eher auf PHP Seite geschehen?!

Hier noch der PHP-Code:
try{
	$client = new
		SoapClient(
			"http://www.heco.de:8080/TestService/Service.svc?wsdl"
		);	  
  $params = array('value'=>"3",'value1' => "3"
); 
	$webService = $client->GetData($params);*/
	print_r($webService);
	$wsResult = $webService->GetDataResult;
	print  $wsResult;*/
} catch (Exception $e) {
	print  'Caught exception: '.  $e->getMessage(). "\n";
}

0

Anzeige



#2 Mitglied ist offline   bLaCkRaBbIt 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.433
  • Beigetreten: 08. November 04
  • Reputation: 2
  • Geschlecht:Männlich
  • Wohnort:Karlsbad

geschrieben 06. Februar 2009 - 13:35

hi leute,

für das problem gibts eine gute api. hier der code, falls jemand mal das gleiche problem hat:
<?php
require_once("nusoap/lib/nusoap.php");

$ns="http://tempuri.org/Imports";

$client = new nusoap_client("http://www.myserver.deService.svc?wsdl", true);
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false;

if ($client->getError())
{
				print "<h2>Soap Constructor Error:</h2><pre>".
				$client->getError()."</pre>";
}

$params=array("vArticleGroupID"=>"1999","vLanguageID"=>"1");
$result = $client->call("getBasic",$params,$ns,null,null,true,'document','literal');		   
if ($client->fault) //soap_fault
{
				print "<h2>Soap Fault:</h2><pre>(".$client->fault->faultcode.")  ".
				$client->fault->faultstring."</pre>";
}
elseif ($client->getError())
{			  
				print "<h2>Soap Error:</h2><pre>".$client->getError()."</pre>";
}
else
{			  
print_r($result);
}

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0