curl 에서 데이터 전송할때 해당서버에서 \u200B <-- 이 문자가 들어간다고 하는데..
본문
이유가 뭔지 알수 있을까요??
예를 들면
도메인/token/balance/
이렇게 전송할때
해당 서버에서는
도메인/token\u200B/balance/ HTTP/1.1
이렇게 로그가 찍힌다고 합니다
그래서 데이터 결과 값을 받질 못하는데
제 쪽에서는 전송 url 에 공백제거 함수를 쓰고 뭘해도 똑같다고 합니다
$url = 도메인/token/balance/
$url = preg_replace('/\s+/', '', $url);
$url = str_replace('u200B', '', $url);
이렇게 해도 똑같다고 합니다 ;;;
해당 서버 관리자가 php 개발자가 아니라 모르겠다고 하는데....
그런데 예로
도메인/token/address
이런식으로 다른 url 을 전송 했을 경우엔 제대로 들어 갑니다
도메인/token/balance/
token/balance 만 보낼때 문제가 되네요
무슨 문제 일까요?
아래는 해당업체의 소스를 url 부분만 수정한 코드 입니다
$url = '도메인/token/balance/';
$url = preg_replace('/\s+/', '', $url);
$url = str_replace('u200B', '', $url);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url ,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('mb_id' => 'devtest1'),
CURLOPT_HTTPHEADER => array(
'ApiKey: 키값'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
!-->
답변 2
$url = '도메인/token/balance/';
이 라인을 삭제하고 다시 타이핑해 보세요.
$url = str_replace('u200B', '', $url);
->
$url = preg_replace( '/[\x{200B}-\x{200D}]/u', '', $url);
답변을 작성하시기 전에 로그인 해주세요.