ASP.NET (C#)을 사용하여 웹 서비스를 작성했으며 NuSOAP을 사용하여 예제 PHP 클라이언트를 작성하려고합니다. 내가 어떻게 넘어 졌는지는이 작업을 수행하는 방법의 예입니다. 일부는 soapval
을 사용하고 있습니다 (예를 들어, false
을 string
유형으로 전달하는 등 매개 변수를 이해하지 못하는 반면 다른 사람들은 단지 array
을 사용하고 있습니다). 나는 '복합 유형 인 파람 유형에서 지금 옆PHP를 통해 C# 웹 서비스를 호출하는 방법은 무엇입니까?
<?php
require_once('lib/nusoap.php');
$client = new nusoap_client('http://localhost:3333/Service.asmx?wsdl');
$params = array(
'anId' => 3, //new soapval('anId', 'int', 3),
'action' => 'OMNOMNOMNOM',
'parameters' => array(
'firstName' => 'Scott',
'lastName' => 'Smith'
)
);
$result = $client->call('DoSomething', $params, 'http://tempuri.org/webservices/DoSomething', 'http://tempuri.org/webservices/DoSomething');
print_r($result);
?>
:
POST /Service.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/webservices/DoSomething"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<DoSomething xmlns="http://tempuri.org/webservices">
<anId>int</anId>
<action>string</action>
<parameters>
<Param>
<Value>string</Value>
<Name>string</Name>
</Param>
<Param>
<Value>string</Value>
<Name>string</Name>
</Param>
</parameters>
</DoSomething>
</soap:Body>
</soap:Envelope>
나의 첫번째 PHP 시도는 다음과 같습니다의이 http://localhost:3333/Service.asmx?wsdl
에 의해보고 내 웹 서비스의 WSDL을 가정 해 봅시다은 같이 보입니다 내 간단한 $array
시도가 자동으로 작동하지 않을 것이라고 확신합니다. 웹 서비스에서 중단 점을 표시하고 WebMethod
(이름을 바꾸지 않고 문자 그대로 DoSomething
)으로 표시된 메소드를보고 인수가 모든 기본값 (int
은입니다.3210, string
은 null
등).
PHP 구문은 어떻게 생겼으며 Param
유형을 올바르게 전달하기 위해해야합니까?
감사합니다, 나는이 경험 후에 PHP를 싫어했다. – cfeduke
정말요? 하나의 타사 라이브러리에 대해 PHP를 비난 했습니까? 그건 나쁜 버터 스카치를 먹은 후 아이스크림을 싫어하는 것과 같습니다. – Anthony