Amazon SNS URL适用于浏览器,但不适用于Android应用

时间:2016-03-21 00:56:36

标签: android amazon-web-services google-cloud-messaging amazon-sns

我为亚马逊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。

此外,我认为这个钛源代码是正确的。

我还需要检查其他任何一点吗?

1 个答案:

答案 0 :(得分:0)

您应该检查Amazon SNS的日志以了解触发HTTP错误400的原因。有时Web服务器应用程序拒绝处理客户端请求,例如,由于防火墙阻止了请求,因为它没有正确的用户代理信息。这个有可能。所以你应该首先从服务器端进行调查。