XMLHttpRequest 只能请求一百多次

Creator 1.2.2, macOS Simulator

XMLHttpRequest不止这些问题。当服务端设置cookie加上httpOnly时,返回多个cookie时,windows native和android上也会有“惊喜”。

1赞

是的,没错,我也遇到了~~~

@wangfuguii 用这个demo,在mac模拟器上没法重现啊。这个URL一直都访问失败啊。
我用curl试了一下,也是如此:

curl -I http://www.gstatic.com/generate_204
curl: (7) Failed to connect to www.gstatic.com port 80: Operation timed out

不好意思,你可以把 url 换成中国可以访问的比如:

curl -v http://connect.rom.miui.com/generate_204

*   Trying 58.83.160.138...
* Connected to connect.rom.miui.com (58.83.160.138) port 80 (#0)
> GET /generate_204 HTTP/1.1
> Host: connect.rom.miui.com
> User-Agent: curl/7.43.0
> Accept: */*
> 
< HTTP/1.1 204 No Content
< Server: Server/2.1.0
< Date: Fri, 18 Nov 2016 09:28:50 GMT
< Connection: keep-alive
< 
* Connection #0 to host connect.rom.miui.com left intact

@dumganhar

OK, 在模拟器上重现了你说的问题,其他平台也是一样的么?
因为HttpClinet是平台相关的实现。不至于每个平台都有问题吧?

我先建了个issue:https://github.com/cocos2d/cocos2d-x/issues/16872

好的,预计什么时候能够修复,等着上线哈

目前XMLHttpRequest不止这些问题。当服务端设置cookie加上httpOnly时,返回多个cookie时,windows native和android上也会有“惊喜”。

这个问题我也发现了,在安卓上,返回多个cookie时,就会有问题。

麻烦描述一下“惊喜”具体是啥?

额,我发现,在cocos2d-x中就没法重现出这个问题,必须在creator才会出现。

只有模拟器会出现此问题么?有试过iOS和Android真机么?
我发现“构建”后,直接用xcode工程跑,是不会出现这个问题的。

cookie表现与ios表现不一致,ios是自动附带进去的,在安卓上必须手动保存设置set-cookie,windows上就算手动保存设置也无效。

会不会是因为 creator 的 cocos2d-x-lite?

没关系啊,我也是用lite测试的。你要上线可以直接在android和ios真机上验证一下是否还有问题吧。

真机上也有这个问题,我们的大概刷了100多次,这个http请求就没任何数据了。我们是7秒发一次http测试。

这个问题解决了吗?我用的creator1.3.3,也遇到了这个问题,请问怎么解呀

有没啥有效的日志信息?

ccc 1.62安卓上也会经常没有返回了

Simulator: [XMLHttpRequest] GET http://www.baidu.com
Simulator: HTTP 125 4 200
Simulator: [XMLHttpRequest] GET http://www.baidu.com
Simulator: HTTP 126 4 200
Simulator: [XMLHttpRequest] GET http://www.baidu.com
Simulator: [XMLHttpRequest] GET http://www.baidu.com
Simulator: HTTP 127 4 200
Simulator: [XMLHttpRequest] GET http://www.baidu.com
Simulator: HTTP 128 timeout
Simulator: [XMLHttpRequest] GET http://www.baidu.com
Simulator: HTTP 129 timeout
Simulator: HTTP 130 timeout
Simulator: [XMLHttpRequest] GET http://www.baidu.com

128次开始 就取不到数据