$s_data : 양쪽에서 약속한 암호화 한 값
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "text=".urlencode($s_data) );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/x-www-form-urlencoded'));
$result = curl_exec($ch);
form 데이터로 데이터를 전송할 때 Content-Type:application/x-www-form-urlencoded 이 설정되어 있어서 파라미터에 urlencode해서 보내지 않았더니 신호를 받는 쪽에서 오류가 발생한다.
파라미터 value 에도 urlencode 해야한다.
모든 곳에서 적용되는지 확실하지 않지만.. 안되면 의심해보자..
[참고한 공식 문서]
https://developer.mozilla.org/ko/docs/Web/HTTP/Methods/POST
https://curl.haxx.se/docs/manual.html
[참고한 블로그 출처]
https://bakyeono.net/post/2016-05-02-rest-api-client-for-cli.html
URL에 사용할 수 없는 문자가 포함될 경우 URL 인코드(퍼센트 인코드)를 해 줘야 한다는 걸 알 것이다. cURL 자체 기능으로는 URL 인코드를 제공하지 않으므로 알아서 URL 인코드 한 주소를 매개변수로 넘겨야 한다. 그 대신 URL 쿼리 부분은 --data-urlenc
ode를 옵션을 이용해 URL 인코딩하여 요청할 수 있다.
'개발 > PHP' 카테고리의 다른 글
[PHP] 문자열 앞에서부터 잘라서 사용하기 (0) | 2020.06.01 |
---|---|
[APM] 클라우드 서버에 APM 설치하기 - ① (0) | 2020.05.21 |
[PHP] 단방향 암호화 (0) | 2020.04.24 |
[php] mail() 함수 사용, 메일에 image를 넣어서 보내려면 (0) | 2020.04.16 |
[PHP]기준일 부터 3일 이후를 출력하자 (0) | 2020.02.10 |