如何解决wp_remote_request 总是出现 403 错误
我正在尝试获取 xml,但我总是收到 403 错误。但邮递员工作正常。
我不认为我在授权方面做错了什么,但也许我错了。
这段代码在functions.PHP中,我用https://localhost/wordpress/wp-admin/admin-ajax.PHP?action=nopriv_search_mobileads调用它
add_action('wp_ajax_nopriv_search_mobileads','get_mobileads_from_api');
add_action('wp_ajax_search_mobileads','get_mobileads_from_api');
function get_mobileads_from_api() {
$url = ('https://services.mobile.de/search-api/search?');
$wp_request_headers = array(
'Host' => 'https://services.mobile.de','Accept' => 'application/xml','Authorization' => 'Basic '.base64_encode('id:pw')
);
$results = wp_remote_request(
$url,array(
'method' => 'GET','headers' => $wp_request_headers
)
);
print_r($results);
}
输出:
Array ( [headers] => Requests_Utility_CaseInsensitiveDictionary Object ( [data:protected] => Array ( ) ) [body] => [response] => Array ( [code] => 403 [message] => Forbidden ) [cookies] => Array ( ) [filename] => [http_response] => WP_HTTP_Requests_Response Object ( [response:protected] => Requests_Response Object ( [body] => [raw] => HTTP/1.1 403 [headers] => Requests_Response_Headers Object ( [data:protected] => Array ( ) ) [status_code] => 403 [protocol_version] => 1.1 [success] => [redirects] => 0 [url] => https://services.mobile.de/search-api/search? [history] => Array ( ) [cookies] => Requests_Cookie_Jar Object ( [cookies:protected] => Array ( ) ) ) [filename:protected] => [data] => [headers] => [status] => ) ) 0
解决方法
除非实际用户名是“id”,实际密码是“pw”,否则这是行不通的。
,找到方法了。
add_action('wp_ajax_nopriv_get_ads_from_api','get_ads_from_api');
add_action('wp_ajax_get_ads_from_api','get_ads_from_api');
function get_ads_from_api(){
$curl = curl_init();
curl_setopt_array($curl,array(
CURLOPT_URL => 'https://services.mobile.de/search-api/search?',CURLOPT_RETURNTRANSFER => true,CURLOPT_ENCODING => '',CURLOPT_MAXREDIRS => 10,CURLOPT_TIMEOUT => 0,CURLOPT_FOLLOWLOCATION => true,CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,CURLOPT_CUSTOMREQUEST => 'GET',CURLOPT_HTTPHEADER => array(
'Authorization: Basic ***'
),));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。