curl과 PHP를 사용하여 POST 요청을 만들고 사용자 이름/비밀번호 배열을 JSON 객체로 보냅니다.CURLOPT_HEADER 헤더를 요청할 때 게시 데이터가 반환되지 않습니다. PHP CURL
지금까지 모든 것이 훌륭하게 진행되고 있습니다. 쿠키를 파싱 할 수 있도록 헤더를 읽으려고했습니다. 내가 파일/항아리를 사용할 수 있고 그것을 테스트했다는 것을 안다. 나는 디스크에 일을 쓰고 싶지 않습니다.
그래서 CURLOPT_HEADER 플래그를 TRUE로 설정하면 쿠키 값을 구문 분석 할 수 있습니다.
HOWEVER - 반환 된 데이터가 사라졌습니다. 완전히 사라졌습니다 ... 내가 플래그 _HEADER FALSE - 응답을 참조하십시오.
코드 :
$login_array = array('login' => array('username' => $username, 'password' => $password));
$login_json = json_encode($login_array);
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HEADER, TRUE); <-- this line f***s it all up...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $login_json);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
curl_setopt($ch, CURLOPT_URL, 'http://localhost/test/token');
$result = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http_code != 200) { /* do something */ }
preg_match_all('|Set-Cookie: (.*);|U', $result, $content);
$cookies = implode(';', $content[1]);
echo "cookie: $cookies<br>"; <-- thanks _HEADER for the cookie value
$response = json_decode($result);
$user_id = $response->user->id;
echo 'user_id: ' . $user_id . '<br>'; <-- empty man... headers are on means body is off...
내가 다른 게시물을 통해 파고 봤는데가 OPTS의 순서가 차이가 보인다. 그 (것)들을 이동하는 시도 - 운 없음.
생각?!
이 트릭을하고있는 것으로 보인다 시도 - curl_getinfo하는 curl_get_info을 수정하시기 바랍니다 불구하고. 그래서 여기서 무슨 일이 일어나고있는거야? 당신이 정교 할 수 있니? 감사. –
"CURLOPT_HEADER, TRUE"때문에 $ result하지만 $ result = "페이지의 본문"+ "본문"에 json_encode를 사용 했으므로 응답 페이지의 본문을 추출하고 json_encode를 적용해야합니다. – Darm
. 이 스레드를 따르는 사람은 누구나 헤더를 요청하면 본문과 함께 포장됩니다. –