我已经得到了雪松堆栈上的Heroku的应用程序,其中有这样的URL:如何让Android应用通过HTTPS连接到Heroku应用?
https://my-app.herokuapp.com/
我使用的是搭载SSL,我没有我自己的证书。但是,这工作正常,我没有看到在浏览器中的任何错误/警告。
现在我想让我的Android应用安全地连接到这个Heroku应用。我试过的代码如下:
BasicHttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 4000);
HttpConnectionParams.setSoTimeout(httpParameters, 4000);
DefaultHttpClient client = new DefaultHttpClient(httpParameters);
HttpRequestBase httpRequest = new HttpGet("https://my-app.herokuapp.com/api/player");
client.execute(httpRequest);
但是这不起作用。我没有看到任何警告,错误或异常,但它只是不通过HTTPS而是通过HTTP进行连接。
我在做什么错?
是否还有其他我必须使用的子类?我认为只提供HTTPS网址就足够了,我在互联网上发现的一些帖子似乎证实了这一点。
我用SSL/TLS找到了有关HttpClient的答案here,here和here,但它们并没有真正帮助我。除了我不完全知道该怎么做的事实之外,我不确定这些答案是否会影响我,因为我没有看到任何会提示证书问题的例外情况。
这一直没有重复。我已经明确地从Stack Overflow中引用了三个类似的问题,这些问题没有涵盖相同的问题,因为我没有使用无效证书,并且想要压制警告,就像其他问题讨论的那样。 – caw
问题是我用'Base64.DEFAULT'在HTTP头中使用了base64编码的数据。事实证明,我不得不使用'Base64.NO_WRAP'为了不破坏请求。出于这个原因,Heroku停止返回值为“https”的“X-Forwarded-Proto”头。 – caw