繁体   English   中英

HttpClient在Android和iOS上的处理方式不同吗?

[英]HttpClient handled differently on Android and iOS?

自大约2天以来,我一直在解决此问题,但我想不出解决办法。 我有一个可以使用特定URL调用的服务,并可以使用POST方法和“ application / x-www-form-urlencoded”作为数据类型发送一些参数。

每次调用时,此服务都会使用时间戳更新数据库表(例如“上次登录时间”)。

在Android上,我的代码按预期运行,但在iOS(模拟器)上运行却无济于事……使用'Charles',我知道两个模拟器都在调用该服务,但我注意到响应在iOS上大约需要60毫秒,在10000毫秒左右在Android上。

这是我用来调用服务的代码:

function updateUserModules(_params) {
    if(_params.Number) {
        var token = md5HashEncoder(_params.Number + '$XDTPEP132x ');
        Ti.API.warn('TOKEN: ' + token);

        var httpClient = Ti.Network.createHTTPClient();

        httpClient.open("POST", "https://myxd.xdpartners.com/updateUsedModules");
        httpClient.setRequestHeader("content-type", "application/x-www-form-urlencoded");

        var params = {
            token: token,
            licenceNumber: _params.Number,
            moduleKeyId: "71",
            terminalId: "0",
            lastUsedDate: moment().format('YYYY-MM-DD HH:mm:ss')
        };

        httpClient.send(params);
    }
}

任何想法在哪里的问题?

我相信您的SSL证书有问题。 使用一些已调整的参数运行代码并添加一个onerror处理程序,将得到以下输出:

[ERROR] :  {
[ERROR] :      code = "-1202";
[ERROR] :      error = "The certificate for this server is invalid. You might be connecting to a server that is pretending to be \U201cmyxd.xdpartners.com\U201d which could put your confidential information at risk.";
[ERROR] :      source = "[object TiNetworkHTTPClient]";
[ERROR] :      success = 0;
[ERROR] :      type = error;
[ERROR] :  }

Android> 5在某些情况下更为宽容,这也许可以解释为什么它可以在其中运行。

尝试httpClient.send(JSON.stringify(params)); 而不是httpClient.send(params);

这在我遇到与您相同的问题时将其固定在我的项目上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM