如何将这个curl转换为wp_emote_get?

时间:2022-01-13 作者:Yogesh

我想将curl转换为wp\\u remote\\u get。

    $url = \'https://accounts.google.com/o/oauth2/token\';

    $curl_post = \'client_id=\' . $client_id . \'&redirect_uri=\' . $redirect_uri . \'&client_secret=\' . $client_secret . \'&code=\' . $code . \'&grant_type=authorization_code\';
    $ch        = curl_init();
    curl_setopt( $ch, CURLOPT_URL, $url );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt( $ch, CURLOPT_POST, 1 );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
    curl_setopt( $ch, CURLOPT_POSTFIELDS, $curl_post );

    $data = json_decode( curl_exec( $ch ), true );

    $http_code = curl_getinfo( $ch, CURLINFO_HTTP_CODE );

1 个回复
最合适的回答,由SO网友:kero 整理而成

curl正在发送POST请求,以转换您想要使用的wp_remote_post(). 如文档中所述,请求参数与WP_Http::request(), 让我们看看如何复制您当前的版本。

  • curl_setopt( $ch, CURLOPT_URL, $url ); 只需设置URL即可。已经在使用wp_remote_post()
  • curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ); 告诉我们想要结果。wp_remote_post() 默认情况下返回
  • curl_setopt( $ch, CURLOPT_POST, 1 ); 确保发送POST请求。wp_remote_post() 默认情况下会这样做
  • curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false ); 这是一个有趣的例子。告诉curl不要验证https证书。我们需要的相应论点是sslverify.
  • curl_setopt( $ch, CURLOPT_POSTFIELDS, $curl_post ); 指定要过帐的字段。我们需要的相应论点是body.

    $url = \'https://accounts.google.com/o/oauth2/token\';
    $curl_post = \'client_id=\' . $client_id . \'&redirect_uri=\' . $redirect_uri . \'&client_secret=\' . $client_secret . \'&code=\' . $code . \'&grant_type=authorization_code\';
    
    $args = [
        \'sslverify\' => false,
        \'body\' => $curl_post,
    ];
    
    $result = wp_remote_post($url, $args);
    
    这应该给你足够的时间来玩玩。将数据作为数组发送可能更具可读性:

    $curl_post = [
        \'client_id\' => $client_id,
        \'redirect_uri\' => $redirect_uri,
        // ..
    ];
    
    但这取决于你。

    检查具体内容$result 是你可能需要打电话json_decode() 在它的身体上。

相关推荐

下载失败cURL错误7:。无法更新任何内容

请帮忙。我想更新WordPress(或插件),但总是出现相同的错误:“下载失败:cURL错误7:”操作系统:Linux Fedora 30。服务器:nginx。DB:MySQL 8.0。PHP 7.3我已经安装了所有需要的PHP 扩展。Curl正在工作-我测试了使用Curl和info.php 表示已启用thas cURL。为什么WordPress无法更新任何内容?Nginx错误。日志没有错误。在另一台具有相同开发环境的笔记本电脑(Windows 10)上,一切正常。我应该给你什么信息来解决这个问题?