私は、curlを使ってPOSTメソッドを提出しなければなりませんが、$ URLを開くときには、ユーザー名/パスワード(htpasswdのような)を持つポップアップウィンドウがあります。次のコードは動作していないいくつかの理由 PHP - カール、htpasswdのポップアップでユーザー名のパスワードを送信する方法?
iは// For Debug server response details
$curlOptions = array(
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_FOLLOWLOCATION => TRUE,
CURLOPT_VERBOSE => TRUE,
CURLOPT_STDERR => $verbose = fopen('php://temp', 'rw+'),
CURLOPT_FILETIME => TRUE,
);
// Real meat
$ch = curl_init();
curl_setopt_array($ch, $curlOptions);
curl_setopt($ch, CURLOPT_URL,$URL);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
// is this the right way here in POST method???
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");// is this correct way to enter username/password in the popup?
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$result=curl_exec ($ch);
// Pretty print the debug logs
echo '<pre>',
!rewind($verbose),
stream_get_contents($verbose),
"\n",
'</pre>';
curl_close ($ch);
echo $result;
がどのように私は私のPOSTメソッドの提出が本当にユーザー名/パスワードを提出していることを確認することができ、サーバ
HTTP/1.1 401 Unauthorized and HTTP/1.1 404 Not Found
(https://www.httpwatch.com/httpgallery/authentication/)から入手しますか? (私が正しく提出した場合、私は見ていないデバッグログ、サーバは、そのサードパーティのサービスプロバイダのAPIとして、私が維持されていない)
EDIT:
TRY1:
// For Debug server response details
$curlOptions = array(
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_FOLLOWLOCATION => TRUE,
CURLOPT_VERBOSE => TRUE,
CURLOPT_STDERR => $verbose = fopen('php://temp', 'rw+'),
CURLOPT_FILETIME => TRUE,
);
// Real meat
$ch = curl_init();
curl_setopt_array($ch, $curlOptions);
//
//
//
//
// STACK-OVERFLOW EXPERT SAID UPDATE THE $URL WITH USER:[email protected] THIS
//
//
//
//
$URL = "http://$username:[email protected]/postblabla";
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
//
//
//
//
// STACK-OVERFLOW EXPERT SAID REMOVE THIS
//
//
//
//
//curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$result=curl_exec ($ch);
// Pretty print the debug logs
echo '<pre>',
!rewind($verbose),
stream_get_contents($verbose),
"\n",
'</pre>';
curl_close ($ch);
echo $result;
をFAILED HTTP認証で
私のコードではこの行を削除する必要がありますか? 'curl_setopt($ ch、CURLOPT_USERPWD、" $ username:$ password ");' $ URLに '$ username:$ password @ $ real_url'を追加する必要がありますか? – YumYumYum
@ YumYumYum。 – Finwe
私のオリジナルコードと推奨コード。それでもまったく同じ結果を出す。私の上記のEDITセクションを参照してください。 – YumYumYum