테스트 사이트 - 개발 중인 베타 버전입니다

curl 보낼 때 param을 넣어 보냈는데 response에서 필요한 항목이 없다고 나와요. 채택완료

라균 2년 전 조회 2,043

</strong></p>

<pre>
function curl($url, $is_post = false, $data = array(), $custom_header = NULL)
{
 //승인 요청을 보내는 함수입니다.
 $ch = curl_init ();
 curl_setopt ($ch, CURLOPT_URL, $url);
 curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
 curl_setopt ($ch, CURLOPT_SSLVERSION, 1);
 curl_setopt ($ch, CURLOPT_POST, $is_post);
 if ($is_post) {
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
  curl_setopt ($ch, CURLOPT_POSTFIELDS, $data);
 }

 curl_setopt ($ch, CURLOPT_TIMEOUT, 300);
 curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
// curl_setopt ($ch, CURLOPT_HEADER, true);
// curl_setopt ($ch, CURLINFO_HEADER_OUT, true);

 if ($custom_header) {
  curl_setopt ($ch, CURLOPT_HTTPHEADER, $custom_header);
 }
 $result[0] = curl_exec ($ch);

 curl_close ($ch);
 return $result[0];
}</pre>

<p><strong>

 

</strong></p>

<p><strong>$reqParams = array(

                'grant_type' => 'refresh_token'

            , 'refresh_token' => $code_to_update['refresh_token']

            );

            $header = array(

                'Content-Type: application/json'

            , 'Authorization: Basic key val' 

            );</strong></p>

<p><strong>            $res = curl('url', true, $reqParams, $header);

            print_r($res);</strong></p>

<p><strong>

 

받는곳에서 빈값으로 날라오는데 제가 잘못한 부분이 어디일까요?

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
플라이
2년 전

curl 통신은 해당 부분만으로는 정확한 체크가 불가하고요 메뉴얼을 통해 체크를 해봐야 할듯 합니다.

curl 통신시 토큰 정보가 있는듯 한데 위 정보가 제대로 생성되어 전송되는지도 확인이 필요할듯 보입니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

라균
2년 전
post 통신시 param넣는 예시를 보고 만들었는데요, 혹시 좀 정확한 방법으로 된 예시 보여주시면 감사합니다.
라균
2년 전
data 를 http_build_query 감싸고
헤더에 'Content-Type: application/x-www-form-urlencoded;charset=utf-8' 이렇게 보내니 해결되었습니다.

댓글을 작성하려면 로그인이 필요합니다.

url 경로가 저게 맞는건가요? 아니면 임시로 바꿔서 올리신건가요???

받는쪽에서 응답을 하고있나요???

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

라균
2년 전
url 경로는 원래 맞는걸 사용하고, 질문에 올리는거라 지운거에요
받는쪽에서 error 로 필수 파라메타(항목명) 이 없다고 알려주고
제가 테스트서버로 보내보니 빈 값으로 받고 있더라구요

Content-Type: application/json 이렇게 보내면서 json_encode 하지 않고있어서

Content-Type: application/x-www-form-urlencoded;charset=utf-8 이걸로 수정하니 값은 가는데 데이터가 보내지긴 했는데 형태가 좀 이상하네요
{"--------------------------5830148b957c24e8\r\nContent-Disposition:_form-data;_name":"\"grant_type\"\r\n\r\nrefresh_token\r\n수정\r\nContent-Disposition: form-data; name=\"refresh_token\"\r\n\r\n수정"}

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인