Titanium HTTPClient超时不起作用

时间:2014-01-30 15:37:22

标签: titanium

我的应用程序以这种方式与服务器通信:

var url = "http://my.server.com";
var client = Ti.Network.createHTTPClient({
    onload : function(e) {
        Ti.API.info("Received text: " + this.responseText);
        alert('success');
    },
    onerror : function(e) {
        Ti.API.debug(e.error);
        alert('error');
    },
    timeout : 5000
});

client.open("GET", url);
client.send();

当服务器在线时,一切正常,但是,当服务器处于脱机状态时,onerror功能永远不会运行,即使已超过5000毫秒。

这是一个Titanium bug吗? 我做错了什么?

1 个答案:

答案 0 :(得分:1)

您的代码在我的机器上运行良好,在3.2GA Titanium SDK和iOS 7.0.3 iPhone模拟器下运行。

由于我无法重现问题,您可以:

  • 检查您正在运行的SDK和模拟器的版本,可能更新其中一个或两个都有帮助。
  • 尝试设置标题(请参阅下面的代码)
  • 您可以尝试在创建请求时分离回调函数,这样您至少可以在创建请求时出现问题或者根本不调用回调函数的原因进行调试。

这样的事情:

var url = "http://my.server.com";
var client = Ti.Network.createHTTPClient();
client.setTimeout(5000);
client.setRequestHeader("Content-Type", "application/json; charset=utf-8");
client.onerror = function(e) {
alert("Ops!");
};
client.send();

看看是否有任何适合你。