Titanium HTTPClient调用在模拟器中工作,但在设备上不工作

时间:2014-05-20 15:03:26

标签: ios titanium httpclient

我正在使用http://www.realtime.co/发送推送通知。不幸的是,我遇到了HTTPClient请求的问题。它在模拟器中完美运行,但它在设备上给出了错误400。

我已经检查了正在发送的JSON字符串,它们在两者之间是相同的。我过去已经注意到,当某些东西在模拟器中工作而不是在设备上时,它经常需要处理大写字母,它们似乎在模拟器中得到解决,但不在设备上解析,即图像文件。

任何人都知道可能导致此问题的原因是什么?我怀疑它是标题中的东西,但似乎无法弄明白。标题,低位和大写可能是错误的吗?我似乎无法找到有关确切内容的任何信息。

var url = 'https://ortc-mobilepush.realtime.co/mp/publish';

var notification =  {
    applicationKey: "[myKey]",
    privateKey: "[myPrivateKey]", 
    channel : "[channel]",
    message : "[message]", 
    //"payload" : { "sound" : "default", "badge" : "1"}
 };

var client = Ti.Network.createHTTPClient({
     onload : function(e) {
         Ti.API.info("ORTC Sent text: " + this.responseText);
     },
     onerror : function(e) {
         Ti.API.debug(e);
     },
     timeout : 10000
 });

 // Prepare the connection.
client.setRequestHeader("Content-Type", "application/json");
client.setRequestHeader('charset', 'utf-8');

client.open("POST", url);
client.send(JSON.stringify(notification));

1 个答案:

答案 0 :(得分:1)

似乎问题出现在下一行的上限中。

client.setRequestHeader('charset', 'utf-8');

需要:

 client.setRequestHeader('Charset', 'utf-8');

模拟器似乎应对它,但设备并不是这通常适用于Titanium中的所有文件路径。