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

Amazon SNS URL works on browser but not from Android app

我为亚马逊 SNS 创建了 url。

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

这个 url 看起来很复杂,但是,我已经确认这个 url 是正确的。

我把这个 url 放在浏览器上它工作正常。

然而,当我从非常简单的应用程序尝试这个时, 它 returns 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。

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

还有其他需要检查的地方吗??

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