Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从wordpress插件中的外部api检索数据?_Php_Json_Wordpress - Fatal编程技术网

Php 如何从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(

我正在wordpress中创建一个插件,该插件将根据从api接收的数据创建自定义帖子。起初我有这样的代码:

    $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);感谢您将此添加到我的插件中,我将返回null
var\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个字符的意外输出。如果您注意到“头已发送”消息、联合订阅源问题或其他问题,请尝试停用或删除此插件“