2017-03-21 12 views
0

ISO-8859-1 인코딩을 사용하는 XML 콘텐츠가 필요한 SOAP 메서드를 사용하고 있습니다. 나는 메소드 매개 변수로 바로 추가 시도했지만 SoapClient는 인코딩 오류 반환 : 나는 UTF-8 XML 내용을 인식하지 않는 SOAP 서버에 XML 컨텐츠를 변환하면SoapClient를 사용하여 ISO-8859-1 XML 파일을 보내려면 어떻게해야합니까?

SOAP-ERROR: Encoding: string '<?xml version="1.0" encoding="ISO-8859-1"?>(...)' is not a valid utf-8 string

합니다.

SoapClient를 사용하는 솔루션은 무엇입니까? cURL을 사용하는 다른 방법은 없습니까?

+0

을 공식 문서는 인코딩을 항상 UTF-8로 할 수없는'인코딩 옵션이 정의 내부의 문자 인코딩에 따르면 나는 콘텐츠 형식 헤더에 문자 집합을 보내는 대신 컬을 사용했다. 이 옵션은 SOAP 요청 (항상 utf-8 임)의 인코딩을 변경하지 않지만 문자열을 그 것으로 변환합니다. ': http://php.net/manual/en/soapclient.soapclient.php –

답변

0

Constantin GALBENU가 지적한 것과 같이 SoapClient를 사용하여 수행 할 수 없습니다.

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_TIMEOUT, 120); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    "Content-type: text/xml;charset=iso-8859-1", 
    "Accept: text/xml", 
    "Cache-Control: no-cache", 
    "Pragma: no-cache", 
)); 
$result = curl_exec($ch); 
curl_close($ch);