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

HttpClient在Android和iOS上的处理方式不同?,android,ios,appcelerator,Android,Ios,Appcelerator,大约两天以来,我一直在讨论这个问题,但我想不出解决的办法。 我有一个可以使用特定URL调用的服务,并使用方法POST和“application/x-www-form-urlencoded”作为数据类型发送一些参数 此服务将在每次调用数据库表时使用时间戳更新它,就像“上次登录”一样 在Android上,我的代码按预期运行,但在iOS模拟器上运行它却毫无用处。。。使用“Charles”,我知道两个模拟器都在调用该服务,但我注意到iOS上的响应时间约为60毫秒,Android上的响应时间约为10000

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

此服务将在每次调用数据库表时使用时间戳更新它,就像“上次登录”一样

在Android上,我的代码按预期运行,但在iOS模拟器上运行它却毫无用处。。。使用“Charles”,我知道两个模拟器都在调用该服务,但我注意到iOS上的响应时间约为60毫秒,Android上的响应时间约为10000毫秒

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

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.sendJSON.stringifyparams;而不是httpClient.sendparams


这在我的项目上解决了它,而我和你有同样的问题。

我为android和iOS都对相同的URL进行了HTTP实现,是的,它们非常不同。你能发布不起作用的iOS代码吗?嗨,乔希,你说不起作用的iOS代码是什么意思?要调用该服务,我只在Android和iOS上使用此代码,这与在Android上工作的代码相同,但在iOS上不工作。我认为您的iOS客户端代码中存在错误,因为该服务在Android上运行良好@Luis PedroThis是一个桌面应用程序,它有一些服务,可以通过调用带有一些参数的URL来执行特定的操作,在本例中是更新数据库中的记录。iOS或Android没有客户端。除非我不明白你的帖子@JoshI以为你在为ObjC的iOS swift编写本地代码,没关系@Luist这也是我发现的,我通过删除https中的s来解决它。我知道我删除了安全设置,但在这种情况下,我不需要几分钟,因为我没有传递任何合理的数据。。。