5
HTTP認証に問題があります。私はHTTPの認証が必要なので、このURLの内容を取得できませんでした。php curl - http認証でURLにアクセスする(ヘルプが必要)
コード:
<?php
$url = "http://www.abcdefg.com/12345/";
$username = 'username';
$password = 'password';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
$out = curl_exec($ch);
print "error:" . curl_error($ch) . "<br />";
print "output:" . $out . "<br /><br />";
curl_close($ch);
?>
問題がある: 代わりの実際のコンテンツを表示し、それが示し"発見302、文書はここに移動しました。"
私は "http:// username:[email protected]/12345/"を試しましたが動作しません。
このurl(1)にアクセスすると、ユーザー名とパスワードを尋ねるポップアップウィンドウが表示されます。ポップアップウィンドウは別のurl(2)(sso認証サーバー)からのものです。認証に合格した場合。再びurl(1)に戻ります。この時点で、私はこのURLの内容にアクセスできます(1)。
私は 放火犯は、ブラウザから直接URLにアクセスして、次のメッセージが表示されます使用:
ステップ1
URL: GET http://www.abcdefg.com/12345/
Status: 302 Found
Protocol: http
ステップ2
URL: GET https://www.ssoauth.com/obrareq.cgi?wh=xxx wu=xxx wo=xxx rh=http://www.abcdefg.com ru=/12345/
Status: 302 Redirect
Protocol: https
ステップ3
URL: GET http://www.abcdefg.com/obrar.cgi?cookie=xxxxxxxxxxxxxxx
Status: 302 Found
Protocol: http
ステップ4
URL: GET http://www.abcdefg.com/12345/
Status: 200 OK
Protocol: http
その後、コンテンツを表示する...
これはクッキーとは何かですか? PHP curlを使ってコンテンツを読むにはどうしたらいいですか?
私はちょうど (真$ chの、CURLOPT_FOLLOWLOCATION、) ますcurl_setoptを追加しましたが、それは ライン32は、 "ライン32にエラーを解析" を示しています。 ますcurl_setopt($ chを、CURLOPT_HTTPAUTH、CURLAUTH_ANY)。 httpsに関連するsthを追加する必要がありますか? **ステップ2 **では、ポート443でhttpsを使用しています。 – Strong
行の最後に ';'を忘れました! –
opps、 ";"を逃しました... – Strong