[php] cURL을 사용하여 SOAP 요청을 보내는 방법은?
-
cURL을 사용하여 POST 요청을 보냅니다. SOAP 요청은 HTTP POST로 전송되므로 cURL을 사용하여 HTTP POST를 설정해야 합니다.
$url = "https://example.com/webservice"; // 웹 서비스 URL $xml_request = '<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://example.com/namespace"> <SOAP-ENV:Body> <ns1:yourSOAPRequest>...</ns1:yourSOAPRequest> <!-- 여기에 실제 SOAP 요청을 추가합니다 --> </SOAP-ENV:Body> </SOAP-ENV:Envelope>'; $headers = array( "Content-type: text/xml;charset=utf-8", "Accept: text/xml", "Cache-Control: no-cache", "Pragma: no-cache", "SOAPAction: \"\"", // 웹 서비스의 SOAPAction "Content-length: ".strlen($xml_request) // 요청의 길이 ); $ch = curl_init(); // cURL 세션 초기화 curl_setopt($ch, CURLOPT_URL, $url); // URL 설정 curl_setopt($ch, CURLOPT_POST, 1); // POST 요청 설정 curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_request); // POST 데이터 설정 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // 헤더 설정 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 응답을 반환하도록 설정 $response = curl_exec($ch); // cURL 실행 if($response === false) { echo 'cURL Error: ' . curl_error($ch); } else { echo 'Response: ' . $response; } curl_close($ch); // cURL 세션 종료
-
위 코드에서
$url
은 SOAP 웹 서비스의 URL로,$xml_request
는 실제 SOAP 요청 XML입니다. 이 예시에서는$headers
배열을 사용하여 필요한 헤더를 설정하였습니다.
이렇게 하면 cURL을 사용하여 SOAP 요청을 보낼 수 있습니다.