PHP에서 웹 서비스를 쉽게 사용하는 방법
WSDL을 기반으로 웹 서비스 를 사용하기위한 코드를 생성하는 데 사용할 수있는 PHP 용 도구가 있습니까? Java에 대해 동일한 작업을 수행하는 Visual Studio 또는 Eclipse 플러그인에서 "웹 참조 추가"를 클릭하는 것과 비슷한 것입니다.
나는 wsdl2php로 큰 성공을 거두었습니다 . 웹 서비스에서 사용되는 모든 개체 및 메서드에 대한 래퍼 클래스를 자동으로 생성합니다.
PHP 5에서는 WSDL에서 SoapClient 를 사용 하여 웹 서비스 함수를 호출 할 수 있습니다 . 예 :
$client = new SoapClient("some.wsdl");
그리고 $ client는 이제 some.wsdl에 정의 된 클래스 메서드를 가진 객체입니다. 따라서 WSDL에 getTime이라는 메소드가 있으면 다음을 호출하면됩니다.
$result = $client->getTime();
그리고 그 결과는 (분명히) $ result 변수에있을 것입니다. __getFunctions 메서드를 사용하여 사용 가능한 모든 메서드 목록을 반환 할 수 있습니다.
과거에 NuSOAP 를 사용 했습니다. 포함 할 수있는 PHP 파일 세트이기 때문에 마음에 들었습니다. 웹 서버에 설치할 항목이 없으며 변경할 구성 옵션도 없습니다. 그것은 보너스 인 WSDL도 지원합니다.
이 기사에서는 PHP SoapClient를 사용하여 API 웹 서비스를 호출하는 방법을 설명합니다.
이러한 기능은 해당 언어로 개발하는 데 사용하는 도구에만 해당됩니다.
예를 들어 메모장을 사용하여 코드를 작성하는 경우 이러한 도구가 없을 것입니다. 따라서 사용중인 도구에 대해 질문해야 할 수도 있습니다.
PHP : http://webservices.xml.com/pub/a/ws/2004/03/24/phpws.html
안녕하세요이 사이트에서 가져 왔습니다. http://forums.asp.net/t/887892.aspx?Consume+an+ASP+NET+Web+Service+with+PHP
웹 서비스에는 Add
두 개의 매개 변수를 사용 하는 메소드 가 있습니다.
<?php
$client = new SoapClient("http://localhost/csharp/web_service.asmx?wsdl");
print_r( $client->Add(array("a" => "5", "b" =>"2")));
?>
다음을 제공 받았다고 가정합니다.
<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:int="http://thesite.com/">
<x:Header/>
<x:Body>
<int:authenticateLogin>
<int:LoginId>12345</int:LoginId>
</int:authenticateLogin>
</x:Body>
</x:Envelope>
과
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<authenticateLoginResponse xmlns="http://thesite.com/">
<authenticateLoginResult>
<RequestStatus>true</RequestStatus>
<UserName>003p0000006XKX3AAO</UserName>
<BearerToken>Abcdef1234567890</BearerToken>
</authenticateLoginResult>
</authenticateLoginResponse>
</s:Body>
</s:Envelope>
하자 말은 액세스 것을 http://thesite.com/ 은 WSDL 주소가 말했다 : http://thesite.com/PortalIntegratorService.svc?wsdl
$client = new SoapClient('http://thesite.com/PortalIntegratorService.svc?wsdl');
$result = $client->authenticateLogin(array('LoginId' => 12345));
if (!empty($result->authenticateLoginResult->RequestStatus)
&& !empty($result->authenticateLoginResult->UserName)) {
echo 'The username is: '.$result->authenticateLoginResult->UserName;
}
보시다시피 XML에 지정된 항목은 LoginId 값을 변경할 수 있지만 PHP 코드에서 사용됩니다.
참고 URL : https://stackoverflow.com/questions/4430/how-to-easily-consume-a-web-service-from-php
'developer tip' 카테고리의 다른 글
Xcode6 오류 : "응용 프로그램에 대해 일치하는 프로비저닝 프로파일이 없습니다." (0) | 2020.12.04 |
---|---|
Javascript ES6 브라우저 간 감지 (0) | 2020.12.04 |
PHP에 내장 데이터 구조가 있습니까? (0) | 2020.12.04 |
터미널에서 텍스트 편집기를 호출하려면 어떻게합니까? (0) | 2020.12.03 |
xCode5-iOS7에서 "입력 카탈로그에 일치하는 시작 이미지가 포함되어 있지 않습니다."라는 오류가 발생합니다. (0) | 2020.12.03 |