Php 如何从wordpress插件中的外部api检索数据?
我正在wordpress中创建一个插件,该插件将根据从api接收的数据创建自定义帖子。起初我有这样的代码:Php 如何从wordpress插件中的外部api检索数据?,php,json,wordpress,Php,Json,Wordpress,我正在wordpress中创建一个插件,该插件将根据从api接收的数据创建自定义帖子。起初我有这样的代码: $stuff_request = 'https://thisdomain/api/stuff'; $username = 'thisdomainuser'; $password = 'thisdomainpassword'; $headers = array( 'Authorization' => 'Basic ' . base64_encode(
$stuff_request = 'https://thisdomain/api/stuff';
$username = 'thisdomainuser';
$password = 'thisdomainpassword';
$headers = array( 'Authorization' => 'Basic ' . base64_encode( "$username:$password" ) );
$stuff_response = wp_remote_get( $stuff_request, array( 'headers' => $headers ));
$stuff_data = json_decode($stuff_response, true);
但是我收到了错误
“期望参数1是给定的字符串数组”
这向我暗示$stuff_响应可能已经以正确的格式返回,因此我从季节数据中删除了json_解码
$stuff_data = $stuff_response;
但这根本无法返回任何内容,调试中也不会出现错误消息。这是我如何将api调用到插件中的问题还是外部api的问题?从
wp\u remote\u get
返回的响应是一个数组
试试这个:
$stuff_request = 'https://thisdomain/api/stuff';
$username = 'thisdomainuser';
$password = 'thisdomainpassword';
$headers = array( 'Authorization' => 'Basic ' . base64_encode( "$username:$password" ) );
$stuff_response = wp_remote_get( $stuff_request, array( 'headers' => $headers));
if( is_array($stuff_response ) ) {
$header = $stuff_response['headers']; // array of http header lines
$body = json_decode( $stuff_response['body'] ); // use the content
}
从
wp\u remote\u get
返回的响应是一个数组
试试这个:
$stuff_request = 'https://thisdomain/api/stuff';
$username = 'thisdomainuser';
$password = 'thisdomainpassword';
$headers = array( 'Authorization' => 'Basic ' . base64_encode( "$username:$password" ) );
$stuff_response = wp_remote_get( $stuff_request, array( 'headers' => $headers));
if( is_array($stuff_response ) ) {
$header = $stuff_response['headers']; // array of http header lines
$body = json_decode( $stuff_response['body'] ); // use the content
}
var\u dump($stuff\u response)代码>或打印($stuff\u response);感谢您将此添加到我的插件中,我将返回nullvar\u dump($stuff\u response)代码>或打印($stuff\u response);感谢您将此添加到我的插件中,我将返回null谢谢,我已更新我的代码以匹配上述内容,并使用上面建议的var_dump,我发现我将返回null,有什么想法吗?var_dump($body)代码>返回null?是的,这是否意味着我试图引入的json有问题?因为我相信调用现在是正确的?请尝试在wp\u remote\u get
调用之后添加此命令:if(is\u wp\u error($result)){$error\u string=$result->get\u error\u message();echo''.$error\u string.}
。这应该让我们知道是否有错误。否则,如果这是明确的,则很可能是另一台服务器上的问题,或者是授权问题。激活插件时出现的消息是“插件在激活期间生成了147个字符的意外输出。如果您注意到“头已发送”消息、联合订阅源问题或其他问题,请尝试停用或删除此插件“谢谢,我已更新代码以匹配上述内容,并使用上面建议的var_dump,我发现我返回的是null,有什么想法吗?var_dump($body)代码>返回null?是的,这是否意味着我试图引入的json有问题?因为我相信调用现在是正确的?请尝试在wp\u remote\u get
调用之后添加此命令:if(is\u wp\u error($result)){$error\u string=$result->get\u error\u message();echo''.$error\u string.}
。这应该让我们知道是否有错误。否则,如果这是明确的,则很可能是另一台服务器上的问题,或者是授权问题。激活插件时出现的消息是“插件在激活期间生成了147个字符的意外输出。如果您注意到“头已发送”消息、联合订阅源问题或其他问题,请尝试停用或删除此插件“