0

PHPのSoapClient()を使ってWSDL(Web Service Definition Language)ファイルにアクセスしようとしています。WSDL ファイルが認証されていることがわかりました。サーバーで別のパラメーターとアクティブな SSL によって配列に資格情報を渡そうとしましたが、それでもエラーが発生します。

私が使用しているコードは次のとおりです。

$client = new SoapClient("https://webservices.chargepointportal.net:8081/coulomb_api_1.1.wsdl",array("trace" => "1","ユーザー名" => "ユーザー名","パスワード" = > "パスワード"));

ここに私が得ているエラーがあります:

警告: SoapClient::SoapClient(https://webservices.chargepointportal.net:8081/coulomb_api_1.1.wsdl) [soapclient.soapclient]: ストリームを開くことができませんでした: 80 行目の PATH_TO_FILE で接続がタイムアウトしました

警告: SoapClient::SoapClient() [soapclient.soapclient]: I/O 警告: 外部エンティティ「https://webservices.chargepointportal.net:8081/coulomb_api_1.1.wsdl」の 80 行目の PATH_TO_FILE のロードに失敗しました

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://webservices.chargepointportal.net:8081/coulomb_api_1.1.wsdl': failed to load external entity "https: //webservices.chargepointportal.net:8081/coulomb_api_1.1.wsdl" in PATH_TO_FILE:80 スタック トレース: #0 /home2/wingstec/public_html/widget/API/index.php(80): SoapClient->SoapClient('https ://webserv...', Array) #1 {main} が 80 行目の PATH_TO_FILE でスローされる

指定したパスにファイルが存在しないというエラーが表示されますが、ブラウザでそのパスを直接実行すると、そのファイルが取得されます

正確な問題が何であるかを理解するのを手伝ってくれる人はいますか?

4

1 に答える 1

1

まず、ホスティングアカウントまたはサーバーからWebサイトにアクセスする権利があることを確認します。最初にhttp Webサービスにアクセスできるかどうかを確認します(sなし)。そうでない場合は、php.iniでallow_url_fopenがtrueに設定されているかどうかを確認してください。

次に、https接続を確立しようとしている場合は、ローカル証明書が必要です。1つ追加して、次のようなものを使用してSoapオブジェクトをインスタンス化できるかどうかを確認します。

new SoapClient($wsdl, array('local_cert' => $pathToLocalCert));
于 2012-10-16T09:45:04.557 に答える