请教关于PHP cURL AJAX 代理问题-问答-阿里云开发者社区-阿里云

开发者社区> 落地花开啦> 正文

请教关于PHP cURL AJAX 代理问题

2016-06-16 18:26:49 1732 1

执行一次时是正常的,短时间(小于一秒)内连续请求多次就会出现只能成功执行一条请求,后面的请求就会报错说未收到回应或者收到多条相同的回应,可执行代码测试。
代码如下:
PHP

<?php
$url = 'http://api.openweathermap.org/data/2.5/weather';

$query = filter_input(INPUT_GET, 'q');
$query || exit;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url . '?q=' . $query);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$response = json_decode(curl_exec($ch)) ?: curl_getinfo($ch);
curl_close($ch);

header("Content-Type: application/json", true, 200);
echo json_encode($response);
exit;

HTML

<!doctype html><html><head><title>Get Weather</title><style>table{border-collapse:collapse;}td,th {border:1px solid #ccc; padding: 3px 5px;}</style></head><body><table><thead><tr><th>name</th><th>id</th><th>main</th><th>description</th><th>icon</th></tr></thead><tbody></tbody></table><script src="http://cdn.staticfile.org/jquery/2.1.0/jquery.js"></script><script>
(function($) {
    var cities = ['Shanghai,CN', 'Chongqing,CN', 'Wuhan,CN', 'Guangzhou,CN', 'Shanghai,CN'];
    $.each(cities, function(_, city) {
        getWeather(city);
    });

    function getWeather(city) {
        $.getJSON('./ajax_proxy.php?q=' + city, function(resp) {
            var table = $('table');
            $.each(resp.weather, function(_, o) {
                var tr = $('<tr>');
                tr.append($('<td>').html(resp.name));
                $.each(o, function(k, v) {
                    tr.append($('<td>').html(v));
                });
                tr.appendTo(table.find('tbody'))
            });
        });
    }
})(window.jQuery);
</script><body></html>
取消 提交回答
全部回答(1)
  • 落地花开啦
    2019-07-17 19:41:46

    我觉得应该是API这边做了限制,请看OpenWeatherMap API官网上写的:

    screenshot

    以及价目表上的情况,明确表明API有频率限制了。而且是申请了API的情况下。像你这样直接就抓接口的人肯定有很多,也就是共用一个接口的人很多,所以更甚。所以正确的做法是去老老实实的申请一个Key啦,然后按照倒数第二条写的一样,按照规定频率去做查询然后存储数据,自己网站这边访问只需要读取存储好的数据就好啦。

    0 0
相关问答

162

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 222979浏览量 回答数 162

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157070浏览量 回答数 145

28

回答

钉钉开放平台“常见问题常见问题常见问题“重要请关注

竹梅 2015-12-03 00:39:14 92862浏览量 回答数 28

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 146769浏览量 回答数 22

31

回答

[@倚贤][¥20]刚学完html/css/js的新手学习servlet、jsp需要注意哪些问题?

弗洛伊德6 2018-10-27 21:52:43 145607浏览量 回答数 31

2

回答

mySQL数据库报错You have an error in your SQL syntax

落地花开啦 2016-02-14 16:09:24 126376浏览量 回答数 2

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 302590浏览量 回答数 249

97

回答

Redhat/CentOS一键安装web环境全攻略

xiaofanqie 2011-08-11 14:51:38 123202浏览量 回答数 97

14

回答

域名解析是正确的,但是网站打不开求助!

游客b4ezpaqg54gdq 2019-07-05 11:50:33 118814浏览量 回答数 14

78

回答

【2013.9.5修正版图文】新手如何使用阿里云(linux)服务器建站(搬站)

姑苏公子 2013-04-11 00:39:13 107736浏览量 回答数 78
+关注
落地花开啦
喜欢技术,喜欢努力的人
0
文章
7824
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载