curl 에서 데이터 전송할때 해당서버에서 \u200B <-- 이 문자가 들어간다고 하는데..

curl 에서 데이터 전송할때 해당서버에서 \u200B <-- 이 문자가 들어간다고 하는데..

QA

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);

답변을 작성하시기 전에 로그인 해주세요.
전체 123,524 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT