我为亚马逊SNS制作了网址。
http://sns.ap-northeast-1.amazonaws.com?
AWSAccessKeyId=***********&Action=CreatePlatformEndpoint&PlatformApplicationArn=arn%3Aaws%3Asns%3Aap-northeast-1%3A776188326341%3Aapp%2FGCM%2Fmyapplication&
SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-03-20T23%3A08%3A26.601Z
&Token=APA91bFN3NV_cBqPtqc6vUSYm8C6o9m5UMoUAvp3qM6WWPlef5s8G8__RNQi_AljpgTJEq-hWqF7iQYJ-4OXKiRJc1uz5JvzDIXfgWd_5AC08S_m0bOIIdcWW2cMZjAyH7PrXpSu2h9j
&Version=2010-03-31&Signature=%2B%2BjtNjQL7qgxUgnwJIwvxMyOdyQnxlmlHtzOJJ%2FQU6A%3D
这个网址看起来很复杂,但我已经确认这个网址是正确的。
我把这个网址放在浏览器上工作正常。
然而,当我从非常简单的应用程序尝试这个时, 它返回400错误的请求错误。
这是非常简单的钛源代码。
var xhrSNS = Ti.Network.createHTTPClient({
onload :function(e) {
Ti.API.info("testPost query:" + JSON.stringify(e));
Ti.API.info(this.responseText);
},
onerror : function(e){
Ti.API.debug("error:" + e.error);
}
});
xhrSNS.open('GET',url);
xhrSNS.send();
我只是混淆了为什么同一个url在浏览器上工作而不是android。
此外,我认为这个钛源代码是正确的。
我还需要检查其他任何一点吗?
答案 0 :(得分:0)
您应该检查Amazon SNS的日志以了解触发HTTP错误400的原因。有时Web服务器应用程序拒绝处理客户端请求,例如,由于防火墙阻止了请求,因为它没有正确的用户代理信息。这个有可能。所以你应该首先从服务器端进行调查。