1

私の 4D データベースには、外部アプリケーションを呼び出して API サイト (例: https://somewhere.com/api/?key=somekey¶m=someparam ) への HTTP リクエストを行うメソッドがあります。リクエストは JSON レスポンスを返します。ただし、外部アプリケーションは呼び出しの成功または失敗のみを返します。JSON 応答を抽出できません。

私の 4D データベースはまだバージョン 12 で、最新バージョンに移行する予定はありません。HTTP リクエストを作成して JSON レスポンスを取得する方法はありますか? 組み込みの PHP エンジンを使用して cURL 呼び出しを行うことを考えていました。4Dでこれをやった人はいますか?

4

2 に答える 2

0

4D v12 には PHP のサポートが組み込まれています。PHP EXECUTE コマンドを使用して、PHP ファイルを呼び出しました。しかし、4D v12 PHP には cURL のネイティブ サポートがないため、file_get_contents() を使用しました。

私の4Dコードは次のとおりです。

C_TEXT($result)
C_TEXT($param1)
C_BOOLEAN($isOk)
$param1:="Tiger"
//someFunction is a function in index.php. $result will hold the JSON return value. 
//I pass value "Tiger" as parameter
$isOk:=PHP Execute("C:\\index.php";"someFunction";$result;$param1)

C:\index.php には、4D v12 が実行する PHP スクリプトが含まれています。コードは

<?php
function someFunction($p1){
    $somekey = 'A$ga593^bna,al';
    $api_URL = 'https://somewhere.com/api/?key='. $somekey. '&param='.$p1;
    return file_get_contents($api_URL);
}
?>

このアプローチは GET リクエストに適用できます。しかし、これはすでに私の目的を果たしています。

于 2016-07-30T13:29:55.840 に答える