0
Zend2로 엔드 포인트에 POST 요청을하려고합니다.Zend2 Post Request
Curl을 사용하여 PHP에서 게시물을 작성할 수는 있지만 Zend2 Client 및 Request를 사용하여 Curl 요청을 재현 할 수는 없습니다.
예를 들어 다음과 같이 올바르게 작동합니다.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
$postfields = array();
$postfields['CostCode'] = '999999801';
curl_setopt($ch, CURLOPT_POSTFIELDS,
$postfields);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: multipart/form-data;
charset=UTF-8',
'Connection: Keep-Alive'
));
// receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
결과가 반환 : -
<ValidateCCResult xmlns="http://ws.apache.org/ns/synapse">
<Result>1</Result></ValidateCCResult>
costcode가 유효한 것을 나타내는.
그러나 Zend에서 이것을 시도하고 재현 할 때 예상 한 응답을 얻지 못합니다.
$postfields = array();
$postfields['CostCode'] = '999999801';
$client = new \Zend\Http\Client();
$client->setAdapter(new \Zend\Http\Client\Adapter\Curl());
$request = new \Zend\Http\Request();
$request->setUri($url);
$request->setMethod(\Zend\Http\Request::METHOD_POST);
$request->getHeaders()->addHeaders([
'Content-Type' => 'multipart/form-data; charset=UTF-8'
]);
$request->setContent($postfields);
$response = $client->dispatch($request);
<ValidateCCResult xmlns="http://ws.apache.org/ns/synapse"><Result>0</Result>
<Message/></ValidateCCResult>
다른 콘텐츠 유형을 시도했지만 $ postfields 배열을 변경하는 setContent와 관련이 있다는 느낌이 들었습니다.
두려워하지 사용해보십시오. 나는 이것도 시험해 보았다. 그러나 운이 없다. $ client-> setOptions (배열 ( 'charset'=> 'UTF-8', 'Content-Type'=> 'multipart/form-data; charset = UTF-8' )); –
질문에 추가 할 결과와 결과가 정확히 무엇인지를 추가하십시오. – zen
업데이트 됨. API는 어떤 피드백도 제공하지 않아 도움이되지 않지만 0은 유효성 검사가 실패했음을 나타냅니다. 이는 정확하지 않으며 일반 오래된 Curl은 유효성을 검증합니다. –