api curl 로 표현
본문
회원(users_permissions_user) 에게 10포인트를 넣어주는 api입니다.
포스트맨으로 정상 동작하여, php curl로 표현하려고 하는데
api 제공측 에러메세지가
Array ( [statusCode] => 400 [error] => Bad Request [message] => When using multipart/form-data you need to provide your data in a JSON 'data' field
표기됩니다.
포스트맨에 설정을 curl로 잘못 표현했는지 확인 부탁드립니다..
$url = "주소~~/histories";
$p_data = array(
"users_permissions_user" => $app_id,
"points" => "10",
"reason" => "포인트전환"
);
$headers = array();
$headers[] = "Authorization: Bearer ".$s_token;
$headers[] = "'Content-type:multipart/form-data'";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1); //전달 데이터를 POST 형식으로 전달
curl_setopt($ch, CURLOPT_POSTFIELDS, $p_data ); //전달할 데이터값
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); //TRUE 설정 시 curl_exec () 반환 값을 문자열로 반환
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt($ch, CURLOPT_COOKIE, '' );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$g = curl_exec($ch); //curl 실행
curl_close($ch); //curl 세션 닫기
$info = json_decode($g, true);
print_r($info);
답변 3
post data를 json으로 넘겨보세요
$headers[] = "'Accept: application/json'";
$headers[] = "'Content-type: application/json;'";
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($p_data) ); //전달할 데이터값
쿠키에 아무 문자열이나 넣어보세요
curl_setopt($ch, CURLOPT_COOKIE, 'secure' );
$headers[] = "'Content-type:multipart/form-data'";
첨부 파일을 보내는 것이 아니라면
이 부분을 빼면 되지 않을까요?
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
이것 한번 추가해 보세요.
답변을 작성하시기 전에 로그인 해주세요.