Linux 마스터 서버에서 SoapClient는 지정된 URL의 WSDL로 인해 다음 오류가 발생합니다. "SOAP-ERROR: WSDL 구문 분석: 에서 로드할 수 없지만 WAMP에서는 작동합니다." 그러나 URL을 직접 호출하거나 명령줄에서 컬을 사용하면 예상되는 XML 응답이 반환됩니다.
누락된 사용자 에이전트 문자열:
의 경우 특정 버전의 PHP에서는 SoapClient가 기본적으로 HTTP 사용자 에이전트 정보를 보내지 않을 수 있습니다. 이로 인해 사용 중인 웹 서비스에 문제가 발생할 수 있습니다.
해결책:
컨텍스트 스트림을 사용하여 사용자 에이전트를 명시적으로 설정:
웹 서비스 문제:
또한, 문제의 웹 서비스에 사용자 에이전트 문자열이 없는 IPv6 요청에 문제가 있음을 발견했습니다. 이를 확인하려면 Linux 호스트에서 다음 명령을 시도하십시오.
사용자 에이전트가 없는 IPv6 요청은 실패하지만 다른 모든 요청은 성공합니다. 이는 Linux 호스트가 웹 서비스의 도메인을 IPv6 주소로 확인하고 있으며 SoapClient가 기본적으로 사용자 에이전트 문자열을 추가하지 않았음을 의미합니다.
위 내용은 내 SoapClient가 Linux에서는 WSDL을 구문 분석하지 못하지만 WAMP에서는 작동하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!