>  기사  >  백엔드 개발  >  PHP는 웹 서비스를 구현합니다(C# 및 Java에서 호출 가능한 것으로 테스트됨).

PHP는 웹 서비스를 구현합니다(C# 및 Java에서 호출 가능한 것으로 테스트됨).

不言
不言원래의
2018-04-03 15:52:084425검색

이 기사에서는 PHP로 웹 서비스를 구현하는 방법(C# 및 Java에서 호출 가능한 것으로 테스트됨)을 공유합니다. 도움이 필요한 친구는 이를 참조할 수 있습니다.

PHP를 사용하여 다른 언어에서 사용할 수 있는 웹 서비스를 구축하는 방법 ​​C#, JAVA 등 인터넷에서 PHP로 구축된 대부분의 웹 서비스는 느낌이 다릅니다. 인터페이스의 입력 매개변수와 출력 매개변수가 상대적으로 복잡한 경우 입력 매개변수와 출력 매개변수를 XML 문자열 또는 Json 문자열로 직접 통합하는 것이 좋습니다. 여기서는 웹서비스를 어떻게 구현하는지에 초점을 맞추겠습니다. 입력 및 출력 매개변수의 형식에 대해서는 XML 문자열을 조작하는 방법을 자세히 소개하지 않습니다. 검색할 내용은 많지만 필터링 및 확인에 주의해야 합니다. XML 및 json에 대한 매개변수입니다. 이 글에서는 wsdl 파일을 이용한 웹 서비스를 소개합니다. no-wsdl 방법은 비교적 간단하므로 여기서는 소개하지 않겠습니다

soap 확장을 확인하고 활성화하세요

먼저 비누 확장, 즉 php_soap.dll을 활성화해야 합니다. php.ini 파일 앞의 세미콜론을 제거하고 Apache를 다시 시작하십시오. phpinfo에서 비누가 활성화되어 있는지 확인하십시오. 여기서는 구체적인 작동 방법을 건너뛰었습니다. 웹 서비스를 구현하려면 비누 확장이 필요합니다.

VS에서 C# 웹 서비스 만들기

온라인에서 찾은 PHP 프로덕션 wsdl 클래스로 생성된 wsdl 파일은 PHP에서만 사용할 수 있으니 더 이상 속지 마세요. 따라서 여기서는 wsdl 파일을 생성하기 위해 곡선을 사용하여 국가를 저장합니다. 먼저 C#을 통해 웹서비스를 구축하여 wsdl을 생성한 후 약간만 변경하면 사용할 수 있습니다.

1. ASP.NET 웹 애플리케이션을 생성하여 프로젝트를 생성합니다.
PHP는 웹 서비스를 구현합니다(C# 및 Java에서 호출 가능한 것으로 테스트됨).
2.b 솔루션을 마우스 오른쪽 버튼으로 클릭하고 웹 서비스(ASMX)를 선택합니다. );
PHP는 웹 서비스를 구현합니다(C# 및 Java에서 호출 가능한 것으로 테스트됨).
3. C#에서 릴리스할 함수 앞에 [WebMethod]를 추가하는 데 주의하세요. 그러면 몇 가지 새 클래스를 만들어야 할 수도 있습니다.
PHP는 웹 서비스를 구현합니다(C# 및 Java에서 호출 가능한 것으로 테스트됨).
4. ctrl+F5를 눌러 실행하면 다음과 같이 나옵니다. url 뒤에 ?wsdl을 추가하면 아래와 같은 wsdl이 나옵니다.
PHP는 웹 서비스를 구현합니다(C# 및 Java에서 호출 가능한 것으로 테스트됨).
PHP는 웹 서비스를 구현합니다(C# 및 Java에서 호출 가능한 것으로 테스트됨).
5. 생성된 WSDL 파일의 위치를 PHP 웹 서비스의 게시 주소로 변경합니다:
PHP는 웹 서비스를 구현합니다(C# 및 Java에서 호출 가능한 것으로 테스트됨).
6.
PHP는 웹 서비스를 구현합니다(C# 및 Java에서 호출 가능한 것으로 테스트됨).7. 웹 서비스 게시:

<?php
/**
 * Created by PhpStorm.
 * User: Damon
 * Date: 2018/1/26
 * Time: 11:16
 */
//引入自动加载
require __DIR__ . &#39;/vendor/autoload.php&#39;;

$wsdlfile=&#39;MESWebService.wsdl&#39;;//wsdl文件路径

$webserver = new \SoapServer($wsdlfile);
$webserver->setClass(\Src\MESWebService::class);
$webserver->handle();

웹 서비스 메서드는 선언될 때 최대 하나의 매개 변수를 갖지만 메서드를 호출할 때는 value1과 value2라는 두 개의 매개 변수를 전달해야 합니다. (이것은 매우 혼란스럽습니다. 제가 이해한 바에 따르면 이 메소드를 호출할 때 시스템은 모든 매개변수를 객체에 넣고 이를 전달합니다.) 반환 값도 매우 특별합니다. $arry를 직접 반환하는 대신 객체에 넣어 반환합니다. 반환 값의 키 값은 wsdl의 이름에 해당합니다.

호출 테스트에 C# 사용

1. 이전과 마찬가지로 새 프로젝트 만들기 -> ASP.NET 웹 애플리케이션을 생성합니다.

2. 프로젝트 아래의 참조를 마우스 오른쪽 버튼으로 클릭하고, 서비스 참조 추가를 클릭합니다. 서비스 참조 설정이 팝업되도록 고급을 클릭하고 오른쪽 하단에 있는 웹 참조 추가를 클릭하면 다음 그림이 나타납니다.



PHP는 웹 서비스를 구현합니다(C# 및 Java에서 호출 가능한 것으로 테스트됨).3 URL에 게시된 웹 서비스 서비스의 주소를 입력하고 Enter를 누릅니다. 다음 그림이 올바르게 나타나면 웹 참조 이름을 수정한 후 참조 추가를 클릭합니다.


PHP는 웹 서비스를 구현합니다(C# 및 Java에서 호출 가능한 것으로 테스트됨).4. 그런 다음 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 추가->새 항목을 클릭한 후 웹 양식을 선택하고 내용을 편집합니다. .aspx.cs 파일.

PHP는 웹 서비스를 구현합니다(C# 및 Java에서 호출 가능한 것으로 테스트됨).
PHP는 웹 서비스를 구현합니다(C# 및 Java에서 호출 가능한 것으로 테스트됨).5.e. 마지막으로 Ctrl+F5를 눌러 실행하면 아래 그림과 같이 해당 출력을 볼 수 있으며, 이는 PHP로 구현된 웹 서비스가 C#에서 올바르게 호출될 수 있음을 보여줍니다. . ㅋㅋㅋ

php는 var_dump 및 에코 출력에 대한 다중 변수 테스트를 구현합니다

위 내용은 PHP는 웹 서비스를 구현합니다(C# 및 Java에서 호출 가능한 것으로 테스트됨).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.