我正在使用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));
答案 0 :(得分:1)
似乎问题出现在下一行的上限中。
client.setRequestHeader('charset', 'utf-8');
需要:
client.setRequestHeader('Charset', 'utf-8');
模拟器似乎应对它,但设备并不是这通常适用于Titanium中的所有文件路径。