gpt4 book ai didi

php - File_get_contents, curl 不起作用

转载 作者:可可西里 更新时间:2023-10-31 22:52:12 26 4
gpt4 key购买 nike

发生了一些奇怪的事情,我想知道为什么。

在这个网址上:http://api.promasters.net.br/cotacao/v1/valores?moedas=USD&alt=json ,它在浏览器中运行良好,但是当我尝试使用 php 检索内容时:

echo file_get_contents('http://api.promasters.net.br/cotacao/v1/valores?moedas=USD&alt=json');

没有打印任何东西,var_dump(...) = string(0) "",所以我更进一步并使用了:

function get_page($url) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, True);
curl_setopt($curl, CURLOPT_URL, $url);
$return = curl_exec($curl);
curl_close($curl);
return $return;
}

echo get_page('http://api.promasters.net.br/cotacao/v1/valores?moedas=USD&alt=json');

也没有打印任何内容,所以我尝试了 python (3.X):

import requests
print(requests.get('http://api.promasters.net.br/cotacao/v1/valores?moedas=USD&alt=json').text)

并且成功了。为什么会这样?怎么回事?

最佳答案

考虑到 php curl 和 file_get_contents 似乎没有在请求 header 中设置值,看起来他们正在阻止用户代理,或者没有用户代理。

您可以通过将其设置为类似于 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:7.0.1) Gecko/20100101 Firefox/7.0.1

<?php
function get_page($url) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, True);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:7.0.1) Gecko/20100101 Firefox/7.0.1');
$return = curl_exec($curl);
curl_close($curl);
return $return;
}

echo get_page('http://api.promasters.net.br/cotacao/v1/valores?moedas=USD&alt=json');

关于php - File_get_contents, curl 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37548007/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com