Rumah  >  Artikel  >  pembangunan bahagian belakang  >  sae的curl限制能否突破?

sae的curl限制能否突破?

WBOY
WBOYasal
2016-06-23 13:54:37999semak imbas

我先说下我的情况:
curl到国外的web service上面,发送数据,处理后,再返回数据。

之前使用了美国空间,香港空间,但是总不满意,无法满足国内各地区的快速访问。

所以我现在放到了sae上面运行,但是sae有很多限制的,比如curl的限制如下:
connect_timeout 5秒 
send_timeout 15秒 
read_timeout 20秒 
抓取文件大小 8MB 
禁用头,这些头用户无法修改 Content-Length、Host、Vary、Via、X-Forwarded-For、FetchUrl、AccessKey、TimeStamp、Signature、AllowTruncated、ConnectTimeout、SendTimeout、ReadTimeout 


目前就是第一条把我给限制住了,后面的限制对我没有影响。

正是由于他的connect_timeout 5秒 限制,导致我的curl应用经常返回502/504错误提示。

这个出错比例大概在3%左右,也就是运行100次,就会出错3次,后来我将curl里的网址由https换成http,这样出错概率降低了不少,但还是存在,测试在1%左右。

对于结果我还是不满意。因为我的curl程序在其他地方(国内三家机房测试)运行都没有出现过错误。

当然我也给sae提出建议,甚至要求升级成付费用户,都没有回复。

惟一的一个管理员说跟我要了curl的网址说帮我找台机器测试看看是不是有这回事。

可能有人说你为什么要在sae这棵树上吊死?

说实话我看中sae的惟一优势是他们是5线机房,国内大部分地区的用户访问速度非常不错的。再说我申请通过开发者认证,每个月的云豆应该足够使用了。

现在似乎有三种选择:
1.继续给sae建议,让他们修改限制参数
2.优化代码?我实在想不出如何优化了
3.放弃sae,这不是我最终想要的结果



我的curl代码是这样的:

	#POST方法        $curl = curl_init($url);        curl_setopt( $curl, CURLOPT_POST, 1 );        curl_setopt( $curl, CURLOPT_POSTFIELDS, $data );        curl_setopt( $curl, CURLOPT_HEADER, 0 );        curl_setopt( $curl, CURLOPT_RETURNTRANSFER , 1 );        $response = curl_exec($curl);        #GET方法        $curl = curl_init($url);        curl_setopt( $curl, CURLOPT_GET, 1 );        curl_setopt( $curl, CURLOPT_GETFIELDS);        curl_setopt( $curl, CURLOPT_HEADER, 0 );         curl_setopt( $curl, CURLOPT_RETURNTRANSFER , 1 );        $response = curl_exec($curl);


回复讨论(解决方案)

对于限制多多的机房我个人是扭头就走的.国内你一般只需要考虑电信网通(现在叫联通?)双线就行了,其他商用接入都是最后接到他们的网上。如果是用空间我还真没啥建议,我没用过任何一款空间,有经济基础的话似乎可以考虑美国的主机,或者香港的主机。

放弃sae 转战阿里云 然后回头来汇报一下情况好给我参考...哈哈哈
云豆够用吗?我不太相信...

至于curl的优化...这还能优化么...

你应该给出一些测试用的 url

你应该给出一些测试用的 url



前天已经给sae的某位管理员了,一直没消息,我也不知道他试了没有,还是试了没回复我……

引用 2 楼  的回复:

你应该给出一些测试用的 url


前天已经给sae的某位管理员了,一直没消息,我也不知道他试了没有,还是试了没回复我……

你连测试用的 url 都不肯给出,那你发这个帖子干什么?

引用 4 楼  的回复:

引用 2 楼  的回复:

你应该给出一些测试用的 url


前天已经给sae的某位管理员了,一直没消息,我也不知道他试了没有,还是试了没回复我……
你连测试用的 url 都不肯给出,那你发这个帖子干什么?



url是带账号和密码传递数据,而且是牵涉到金额相关的信息,不方便在论坛上公开,我也只是在sae上测试有问题,在其他地方测试没问题的。

噢,既然如此,那就无能为力了

lz试试fetchUrlhttp://apidoc.sinaapp.com/__filesource/fsource_sae__saefetchurl.class.php.html#a198

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:session_id()Artikel seterusnya:5个数组同时写到数据库怎么写?