Http를 통해 서버의 서비스 소프트웨어 데이터에 액세스하면 브라우저에 다음 확인 팝업 상자가 나타납니다.
PHP 컬 방법을 사용하여 데이터를 가져오고 싶지만 사용자 이름과 비밀번호 확인 매개변수를 설정하는 방법을 모르기 때문에:
작동하지 않는 것을 발견했습니다:
<code>curl_setopt($curl, CURLOPT_USERPWD, "name:pwd"); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); </code>
포스트맨을 사용하여 로그인을 시뮬레이션한 후 요청 헤더에서 다음 항목을 발견했습니다.
그런 다음 PHP 컬 메서드에 요청 헤더를 추가합니다.
<code>curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json','Authorization:Basic TnhFY29AMjAxNjojQGlIeVg0eStHUFE='));</code>
이런 방법으로 데이터를 요청할 수 있습니다.
하지만 문제는 스크립트가 항상 실행되도록 서버에 배치해야 하기 때문에 이 하드 코딩된 확인이 만료되면 다시 실패하고 권한이 없다는 것입니다.
항상 로그인을 확인할 수 있도록 php Curl 사용자 이름과 비밀번호 매개변수를 어떻게 설정하나요?
Http를 통해 서버의 서비스 소프트웨어 데이터에 액세스하면 브라우저에 다음 확인 팝업 상자가 나타납니다.
PHP 컬 방법을 사용하여 데이터를 가져오고 싶지만 사용자 이름과 비밀번호 확인 매개변수를 설정하는 방법을 모르기 때문에:
작동하지 않는 것을 발견했습니다:
<code>curl_setopt($curl, CURLOPT_USERPWD, "name:pwd"); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); </code>
포스트맨을 사용하여 로그인을 시뮬레이션한 후 요청 헤더에서 다음 항목을 발견했습니다.
그런 다음 PHP 컬 메서드에 요청 헤더를 추가합니다.
<code>curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json','Authorization:Basic TnhFY29AMjAxNjojQGlIeVg0eStHUFE='));</code>
이런 방법으로 데이터를 요청할 수 있습니다.
하지만 문제는 스크립트가 항상 실행되도록 서버에 배치해야 하기 때문에 이 하드 코딩된 확인이 만료되면 다시 실패하고 권한이 없다는 것입니다.
항상 로그인을 확인할 수 있도록 php Curl 사용자 이름과 비밀번호 매개변수를 어떻게 설정하나요?
이것은 일반적으로 수행되지 않는 PHP HTTP 검증입니다. 결국 HTTP 검증은 너무 간단합니다
http://php.net/manual/zh/feat...
<code>$username='ABC'; $password='XYZ'; $URL='<URL>'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$URL); curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //get status code $result=curl_exec ($ch); curl_close ($ch);</code>
CURL을 사용하여 로그인을 시뮬레이션하고 인증 토큰 받기
1단계에서 얻은 토큰을 사용하여 다음 요청을 수행하세요
1단계의 토큰은 적절하게 캐시될 수 있으며, 캐시 시간은 서버에 따라 다릅니다.
여담: 개인적으로 서버쪽은 Yii2가 쓴 것 같아요.
이전에 비슷한 일을 한 적이 있는데 시간도 오래 걸리고 너무 번거로워서 결국 phantomjs로 해결했습니다. PHP는 노드 프로그램을 호출합니다.
이 속성 추가
<code>$user = 'hello'; $pass = '$world'; curl_setopt($ch, CURLOPT_USERPWD, "{$user}:{$pass}"); </code>