0

私はPHPに比較的慣れておらず、VB.NET/Webサービス/SOAP/ XMLにまったく慣れていません。また、PHPをVB.NETWebサービスと通信させるのに問題があります。

これは私のPHPスクリプトです:

<?php
    $client = new SoapClient("http://10.0.0.2/wsteste/Service1.asmx?wsdl");
    $param = array("usuario" => "name", "senha" => "test");
    $response = $client->__soapCall("HelloWorld", $param);  
    print_r($response);
?>

そして、これがVB.NETasmxです。

Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel

' To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
' <System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class Service1
    Inherits System.Web.Services.WebService

    <WebMethod()> _
    Public Function HelloWorld(ByVal usuario As String, ByVal senha As String) As String
        Return usuario & " - " & senha
    End Function

End Class

そして、これがブラウザに印刷されたものです:

stdClass Object ( [HelloWorldResult] => - )

戻るはずだっname - testたんですよね?

4

1 に答える 1

1

PHPSOAPクライアントは名前なしでパラメータを渡していると思います。したがって、usuarioもsenhaもHelloWorldメソッドには何の意味もありません。

私は次のようなことを試みます

$client->HelloWorld(array("usuario"=>"name", "senha"=>"test"));

しかし、ヘブンはテストしました。

編集

この質問から複数のパラメーターを使用してPHPからasp.netWebサービスを呼び出します

このようにパラメータを渡します

$params->usuario = 'name';
$params->senha = 'test';
$client->HelloWorld($params);
于 2013-03-26T12:40:38.317 に答える