如何使用用户名和密码向外部API发送GET请求

时间:2021-12-07 作者:Habib Ur Rehman

实际上,我想向api发送get请求。响应是xml格式的。我试过这个

<article>
    <div class="entry-content">
        <?php

        $url = "XXXXXXX";

        $args = array(
            \'headers\' => array(
                \'Authorization\' => \'Basic \' . base64_encode( \'username:password\' ),
                \'Accept\' => \'application/xml\'
            )
        );

        $res = wp_remote_request(
            $url,
            array(
                \'method\'    => \'GET\',
                \'headers\'   => $args
            )
        );

        print_r($res);
        ?>  
    </div>
</article>
我已经在postman中测试了相同的url,服务器的响应即将到来。但在worpress中,它不会出现,它会给我403个请求\\u Utility\\u CaseInsensitiveDictionary data protected error。

如何解决这个问题请帮助我。

1 个回复
SO网友:Jesús Franco

注意钥匙:

       $headers = array(
           // \'headers\' => array( // this is duplicated
                \'Authorization\' => \'Basic \' . base64_encode( \'username:password\' ),
                \'Accept\' => \'application/xml\'
           // )
        );

        $res = wp_remote_request(
            $url,
            array(
                \'method\'    => \'GET\',
                \'headers\'   => $headers
            )
        );
不发送headers 在…内headers. 使用不同于args 可以帮助您发现问题。

文档中的引用示例:

https://developer.wordpress.org/plugins/http-api/#get-using-basic-authentication

相关推荐

是否向自定义POST类型的REST API请求添加自定义参数?

我注册了一个名为wasb_message 具有show_in_rest 设置为true 和rest_base 设置为\'messages\' 因此,可以在端点处访问资源https://mydomain/wp-json/wp/v2/messages(使用WP_REST_Posts_Controller 类)。自定义post类型有一个名为wasb_status 对于整数值,如何添加自定义参数,以便在对端点执行get请求时https://mydomain/wp-json/wp/v2/messages?statu