1

PHPを介してIISWebサーバー上のsmartystreetsAPI(liveaddress)に接続しようとしています。file_get_contentsとcURLの両方の例をここからコピーしました:SmartyStreetsgithubPHPの例。どちらも機能しません。URLをブラウザに直接貼り付けると、機能します。file_get_contentsの例は次を返します。

Warning: file_get_contents(https://api.qualifiedaddress.com/street-address/?street=817+Quail+Ln.+%2312+bakersfield%2C+ca+93309&auth-token=5Nk1%2FA) [function.file-get-contents]: failed to open stream: No such file or directory in C:\Inetpub\includes\myclass.php on line 28

phpinfoで、allow_url_fopenがオンになっていることを確認しました。user_agentも設定してみました。それでも、これは機能しません。

cURLの例はfalseを返します。

これはIISの問題でしょうか?または、ファイアウォールの設定が原因でしょうか?もしそうなら、どのポートを開くかをどのように見つけるのですか?他に可能性はありますか?ありがとうございました!

4

3 に答える 3

3

これを試して。通常は、APIに使用されるSSLの構成(min./default/simple/widespread;)のようなもので十分ですSSLが、とにかくプロバイダーのSSL構成によって異なります。cURL

curl_setopt($ch, CURLOPT_SSLVERSION, 3); // OpenSSL issue
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);  // Wildcard certificate
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);

それが機能しない場合は、smthを知ってみてください。についてSSL configuration of your providerそしてあなたは間違いなく解決策を見つけるでしょう。

于 2012-07-25T21:51:49.883 に答える
0

ついにcURLが機能するようになりました。問題は、リンクがSSL(URLのhttps)を使用していることでした。curl_error($ ch);をエコーすることでこれを発見しました。この1つのcURLオプションを追加しましたが、完全に機能しました。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

file_get_contentsが機能しなかった理由がこれに関連していたかどうかはわかりません。

于 2012-07-25T21:43:28.067 に答える
0

そのWebサービスには認証が必要です。

認証の詳細を渡す方法の詳細については、curl_setoptマニュアルを参照してください。

于 2012-07-25T10:33:08.680 に答える