我有一個向 API 發出請求的腳本,然后將響應返回給 AJAX。將我的服務器從 PHP 5.6 更新到 PHP 7.3 后,請求沒有成功,只返回“null”。這是我得到的錯誤:PHP 警告:file_get_contents( https://api.ekata.com/3.3/identity_check ?'.primary.address.city=Los Angeles&primary.address.postal_code=90001&primary.address.state_code=CA&primary.address.street_line_1=7519+Wadsworth+ Ave&primary.name=SteveTest+SmithTest&primary.phone=9165551234.'&api_key=XXXXXXXXXX):打開流失?。篐TTP請求失??!這是PHP:<?php# An HTTP GET request exampleheader('Content-Type: application/json');$url = $_POST['url']; $json = file_get_contents('https://api.ekata.com/3.3/identity_check?'.$url.'&api_key=XXXXXXX');$obj = json_decode($json);echo json_encode($obj, JSON_PRETTY_PRINT);
2 回答

慕森王
TA貢獻1777條經驗 獲得超3個贊
您的錯誤消息清楚地表明 file_get_contents 嘗試獲取遠程 url 失敗。您可能應該改用CURL。或者,查看 phpinfo() 的輸出并查找allow_url_fopen。如果這是0或false,那么您可以嘗試更改 php.ini 設置以允許 PHP 使用 file_get_contents 等函數訪問遠程 url。
請注意,如果您更改 php.ini,如果 PHP 作為模塊運行,您可能需要重新啟動 apache,或者如果您的機器正在運行,則重新啟動 PHP-FPM。
編輯:我要補充一點,您的 PHP 腳本應該在咳嗽之前檢查 file_get_contents 調用的結果。如果結果為空,您可能應該讓您的 PHP 腳本產生某種錯誤對象,并讓您的 javascript 在嘗試對 JSON 結果進行操作之前檢查錯誤情況。

Helenr
TA貢獻1780條經驗 獲得超4個贊
所以問題是 city 字段中有一個空格,因此 API URL 無效。在我開始真正查看“網絡/響應”選項卡之前并不明顯
https://proapi.whitepages.com/3.3/lead_verify?primary.address.city=Los Angeles&primary.address.postal_code=90001
我將此添加到我的 php 文件中并成功發送:
$url = str_replace(" ", "%20", $url);
然而,我確實需要研究 CURL,所以我將在我們的 DEV 網站上這樣做。謝謝大家幫我解決這個問題。
- 2 回答
- 0 關注
- 283 瀏覽
添加回答
舉報
0/150
提交
取消