2014-01-27 4 views
1

얼마 전에 API에 연결하려고 할 때 HTTP 400 "잘못된 요청"문제로 고생했습니다.PHP NuSoap 정확한 헤더 전송 방법

헤더와 관련이 있다는 느낌이 들지만 확실하지 않습니다.

내 쿼리는 SOAP 요청의 출력 및 헤더를 올바르게 설정하는지 여부와 관련이 있습니다.

$result = $proxy->call('ValidateService', array('serviceXML' => $xml)); 
:

그래서 내가 헤더를 설정해야합니다 코드는

$proxy->setHeaders('<soap:Header><AuthenticationSoapHeader xmlns="https://www.xxxxx.com/ASPAPI"><Token>xxxxx-xxxxx-xxxx</Token></AuthenticationSoapHeader></soap:Header>'); 

그때 직접과 같이, 헤더를 설정 한 후 API 함수를 호출을하고 XML 문자열을 통해 통과하다

그러나 $proxy->request 인쇄 출력 같은이다

[TOKEN VALUE FROM HEADER HERE][CONTENTS OF XML STRING HERE] 

그래서 번째 e request 문자열은 기본적으로 헤더의 <token> 태그 안의 내용을 인쇄하고 XML 문자열 바로 뒤에옵니다.

<token> 값이 XML 문자열과 함께 요청에 인쇄되는 것이 맞습니까? 헤더를 잘못 설정했을 수 있습니다.

답변

2

문제는 헤더에 있습니다.

<soap:Header> 개방 & 닫는 태그가 될해야 HTTP Error 400 "Bad Request"

$proxy->setHeaders('<soap:Header><AuthenticationSoapHeader xmlns="https://www.xxxxx.com/aspapi"><Token>xxxxx</Token></AuthenticationSoapHeader></soap:Header>'); 

의 원인이되었다

$proxy->setHeaders('<AuthenticationSoapHeader xmlns="https://www.xxxxx.com/aspapi"><Token>xxxxx</Token></AuthenticationSoapHeader>');