Heim  >  Artikel  >  Backend-Entwicklung  >  Wie implementiert man einen asynchronen Rückruf der Baidu Wenxin Yiyan-Schnittstelle in der PHP-Entwicklung?

Wie implementiert man einen asynchronen Rückruf der Baidu Wenxin Yiyan-Schnittstelle in der PHP-Entwicklung?

WBOY
WBOYOriginal
2023-08-26 17:22:441071Durchsuche

Wie implementiert man einen asynchronen Rückruf der Baidu Wenxin Yiyan-Schnittstelle in der PHP-Entwicklung?

Wie implementiert man einen asynchronen Rückruf der Baidu Wenxin Yiyan-Schnittstelle in der PHP-Entwicklung?

Hitokoto ist als Kurzsatzdienst voller Philosophie, Emotionen und Zufälligkeit bei vielen Entwicklern und Benutzern sehr beliebt. Baidu bietet eine Schnittstelle, die Informationen durch asynchrone Rückrufe abrufen kann. In diesem Artikel wird daher erläutert, wie der asynchrone Rückruf der Baidu Wenxin Yiyan-Schnittstelle in der PHP-Entwicklung implementiert wird.

Zuerst müssen wir ein Baidu-Entwicklerkonto registrieren und eine Anwendung erstellen, um den API-Schlüssel und den geheimen Schlüssel zu erhalten, die für den Zugriff auf die API erforderlich sind. Als nächstes können wir mit dem Schreiben von Code beginnen.

Erstellen Sie zunächst eine Datei mit dem Namen hitokoto.php und fügen Sie den folgenden Code hinzu: hitokoto.php的文件,并添加以下代码:

<?php
$apiKey = '你的API Key';
$secretKey = '你的Secret Key';

$url = 'http://api.hitokoto.cn/?encode=json';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-Bce-Signature-Key: ' . $apiKey . ':' . $secretKey]);
$response = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error: ' . curl_error($ch);
} else {
    echo $response;
}
curl_close($ch);

上述代码中,我们首先定义了API Key和Secret Key,并设置了要请求的接口URL。接着,我们使用curl_init()函数初始化一个CURL会话,并通过curl_setopt()函数设置一些CURL选项。其中,CURLOPT_URL指定要访问的URL,CURLOPT_RETURNTRANSFER设为1表示将请求的返回值以字符串形式返回,CURLOPT_HEADER设为0表示不返回响应头信息,CURLOPT_TIMEOUT设定超时时间,CURLOPT_HTTPHEADER设置请求头信息,其中包括API Key和Secret Key。接下来,我们通过curl_exec()函数发送请求,并通过curl_errno()函数检查是否有错误。最后,我们使用curl_close()函数关闭CURL会话。

保存文件后,我们可以通过访问hitokoto.php文件来获取一言的内容。

以上是使用CURL实现的一种方式。除此之外,我们还可以使用PHP的file_get_contents()函数来实现。

修改hitokoto.php文件的代码如下:

<?php
$apiKey = '你的API Key';
$secretKey = '你的Secret Key';

$url = 'http://api.hitokoto.cn/?encode=json';
$context = stream_context_create([
    'http' => [
        'method' => 'GET',
        'header' => 'X-Bce-Signature-Key: ' . $apiKey . ':' . $secretKey,
    ],
]);
$response = file_get_contents($url, false, $context);
if ($response === false) {
    echo 'Error: ' . error_get_last()['message'];
} else {
    echo $response;
}
?>

上述代码中,我们首先定义了API Key和Secret Key,并设置了要请求的接口URL。接着,我们通过stream_context_create()函数创建一个上下文,其中'http'指定了请求的方法为GET,并设置了请求头信息,其中包括API Key和Secret Key。最后,我们通过file_get_contents()函数发送请求,并通过比较返回的结果是否为falserrreee

Im obigen Code definieren wir zunächst den API-Schlüssel und den Geheimschlüssel und legen die anzufordernde URL der Schnittstelle fest . Als Nächstes verwenden wir die Funktion curl_init(), um eine CURL-Sitzung zu initialisieren und einige CURL-Optionen über die Funktion curl_setopt() festzulegen. Unter diesen gibt CURLOPT_URL die URL an, auf die zugegriffen werden soll, CURLOPT_RETURNTRANSFER wird auf 1 gesetzt, um den Anforderungsrückgabewert in Form einer Zeichenfolge zurückzugeben, und CURLOPT_HEADER code> ist auf 0 gesetzt. Zeigt an, dass keine Antwort-Header-Informationen zurückgegeben werden, <code>CURLOPT_TIMEOUT legt das Timeout fest und CURLOPT_HTTPHEADER legt die Anforderungs-Header-Informationen fest, einschließlich API-Schlüssel und Geheimschlüssel. Als nächstes senden wir die Anfrage über die Funktion curl_exec() und prüfen mit der Funktion curl_errno() auf Fehler. Abschließend schließen wir die CURL-Sitzung mit der Funktion curl_close().

Nach dem Speichern der Datei können wir den Inhalt von Yiyan abrufen, indem wir auf die Datei hitokoto.php zugreifen. 🎜🎜Das Obige ist eine Möglichkeit, dies mit CURL zu erreichen. Darüber hinaus können wir auch die PHP-Funktion file_get_contents() verwenden, um dies zu erreichen. 🎜🎜Ändern Sie den Code der Datei hitokoto.php wie folgt: 🎜rrreee🎜Im obigen Code definieren wir zunächst den API-Schlüssel und den Geheimschlüssel und legen die anzufordernde Schnittstellen-URL fest. Als Nächstes erstellen wir einen Kontext über die Funktion stream_context_create(), wobei 'http' die Anforderungsmethode als GET angibt und die Anforderungsheaderinformationen, einschließlich API-Schlüssel und -Geheimnis, festlegt Schlüssel. Schließlich senden wir die Anfrage über die Funktion file_get_contents() und bestimmen, ob die Anfrage erfolgreich ist, indem wir vergleichen, ob das zurückgegebene Ergebnis false ist. 🎜🎜Das Obige ist ein Codebeispiel für die Implementierung eines asynchronen Rückrufs der Baidu Wenxin Yiyan-Schnittstelle in der PHP-Entwicklung. Mit diesen Methoden können wir Yiyans Inhalte problemlos abrufen und in unseren eigenen Anwendungen verwenden. Ich hoffe, dieser Artikel ist hilfreich für Sie! 🎜

Das obige ist der detaillierte Inhalt vonWie implementiert man einen asynchronen Rückruf der Baidu Wenxin Yiyan-Schnittstelle in der PHP-Entwicklung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn