CURL의 헤더에 문제가 있습니다. 스크립트에 두 부분이 있습니다. 먼저 autentication과 두 번째 요청이 있습니다. 첫 번째 부분은 잘 작동합니다. 결과 코드와 ID가 나타납니다. , 두 번째 부분에서 해당 ID 가진 머리글을 설정하고 머리글에 보낼 수 있지만이 오류 (< HTTP/1.1 401 권한이 부여되지 않음),하지만 지금 firefox (ModifyHeaders) 및 addon 사용하여 tryed헤더의 말림 문제
$postargs = array('username' => 'user', 'password' => 'pass', 'key' => '1234567890');
$postargs = json_encode($postargs);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json; charset=utf-8","Accept:application/json, text/javascript, */*; q=0.01"));
curl_setopt($ch, CURLOPT_POSTFIELDS, $postargs);
curl_setopt($ch, CURLOPT_URL, "https://ws.com/login");
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
$fh = fopen('curl_debug.txt', 'w');
curl_setopt($ch, CURLOPT_STDERR, $fh);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);
$a = json_decode($response);
echo $a->result;
curl_close($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://ws.com/data");
curl_setopt($ch, CURLOPT_HTTPHEADER, array("id : $a->result","dataRequest : name","Content-Type: application/json; charset=utf-8","Accept:application/json, text/javascript, */*; q=0.01"));
curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
$fh2 = fopen('curl_debug2.txt', 'w');
curl_setopt($ch, CURLOPT_STDERR, $fh2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response2 = curl_exec($ch);
: 지금 응답을 얻을 수 (나는이 소프트웨어에 ID를 잘 살고과 URL에 의해 WS에 접근), 내가 그것을 일어나고 또는 내가 어떻게 고칠 수 있는지 모르겠어요, 여기 코드입니다
스크립트에서 무엇이 잘못 되었습니까? 왜 헤더 (이 경우에는 id)가 스크립트에 의해서가 아니라 ModifyHeaders에 의해 움직이는가?
미리 감사드립니다.
시도 추가 CURLOPT_COOKIEFILE 및 CURLOPT_COOKIEJAR 및 파일 (스크립트에 의해)을 쓰기로 가리 킵니다. 이렇게하면 컬이 세션 쿠키를 거기에 저장할 수 있습니다. – Waygood
페이지가 다른 페이지로 리디렉션되는 경우 CURLOPT_FOLLOWLOCATION을 사용하는 것도 좋습니다. (그리고 레이가 말했듯이 curl_close를 버리십시오.) – Waygood