web-dev-qa-db-ja.com

curl401不正なエラー

実行しようとしているときの画像に示されているようにhttps://www.example.com/Push_Order.php?orderId=1562それは私に401 Unathorizedエラーを与えます。しかし、このURLをブラウザーで実行すると、正常に実行されます。

私の間違いや欠けているものはどこにありますか?

enter image description here

PHPカールコード

<?php

$ch = curl_init("https://www.example.com/Push_Order.php?orderId=1562");

curl_setopt($ch);

$response = curl_exec($ch);

curl_close($ch);
?>

このPush_Order.phpファイルには、挿入クエリのみが含まれています。

4
Jaydeep Pandya

サーバー上のApacheで認証が有効になっているようですが、ブラウザがユーザー名とパスワードをキャッシュしているため、現時点では認証が有効になっていないようです。

次のように_CURLOPT_USERPWD_オプションを設定する必要があります。

_<?php

$ch = curl_init("https://www.example.com/Push_Order.php?orderId=1562");

curl_setopt($ch, CURLOPT_USERPWD, "myusername:mypassword");

$response = curl_exec($ch);

curl_close($ch);
?>
_

(空のcurl_setopt($ch)は奇妙で、とにかく何もしませんでした。)

コマンドラインでは、次のように機能するはずです(URLにユーザー名とパスワードを含める)。

_curl https://myusername:[email protected]/Push_Order.php?orderId=1562
_
12
CherryDT

Apache2 Webサーバーからこのエラーメッセージが正確に届き、診断に少し時間がかかったので、同じ問題を調査してここにたどり着いた人にとって何が悪かったのかを文書化したい。

Apacheが正常に実行されていると誤って想定し、実際に認証の問題が発生しました。これがメッセージの意味です。現実には、Apache構成ファイルに構文エラーがありました。

ローカルのcurlがあなたにこれを与えるなら

enter image description here

(文字ごとに同じ、URLとポート番号を与えるか取る)あなたは幸せに実行できることを確認したいかもしれません

service Apache2 reload

承認を過度に調査する前に!

0
Ivan