Java 如何在Android中获取https字符串(使用AQuery)

Java 如何在Android中获取https字符串(使用AQuery),java,android,aquery,Java,Android,Aquery,我的安卓系统有问题, 此项目在之前获得一些, 但是现在webapi将http转换为https,它无法工作, 我不知道如何修复它, private AQuery aq; aq = new AQuery(this); aq.ajax(url, String.class, new AjaxCallback<String>() { public void callback(String url, String string,


我的安卓系统有问题,
此项目在之前获得一些,
但是现在webapi将http转换为https,它无法工作,
我不知道如何修复它,

private AQuery aq;
aq = new AQuery(this);
    aq.ajax(url, String.class, new AjaxCallback<String>() {
                        public void callback(String url, String string,
                                             AjaxStatus status) {
                            if (status.getCode() == 200 && !string.equals("")
                                    && result.indexOf(Constants.STATUS) != -1) {
                                StatusMsg statusMsg = JSONParserHelper
                                        .statusMsgParser(result);
                                if (statusMsg != null) {
                                    String showMsg = JSONParserHelper.getStatusMsg(
                                            Register.this, statusMsg);
                                    Message msg = mHandler
                                            .obtainMessage(1, showMsg);
                                    mHandler.sendMessage(msg);
                                } else {
                                    Message m = mHandler.obtainMessage(2,
                                            getString(R.string.link_failure));
                                    mHandler.sendMessage(m);
                                }
                            } else {
                                Message m = mHandler.obtainMessage(2,
                                        getString(R.string.link_failure));
                                mHandler.sendMessage(m);
                            }
                        }

                        ;
                    });
私用水渠aq;
aq=新水道(本);
ajax(url,String.class,新的AjaxCallback(){
公共无效回调(字符串url、字符串、,
AjaxStatus(状态){
如果(status.getCode()==200&&!string.equals(“”)
&&result.indexOf(Constants.STATUS)!=-1){
StatusMsg StatusMsg=JSONParserHelper
.statusMsgParser(结果);
如果(statusMsg!=null){
字符串showMsg=JSONParserHelper.getStatusMsg(
Register.this,statusMsg);
消息msg=mHandler
.获取消息(1,showMsg);
mHandler.sendMessage(msg);
}否则{
消息m=mHandler.获取消息(2,
getString(R.string.link_失败);
mHandler.sendMessage(m);
}
}否则{
消息m=mHandler.获取消息(2,
getString(R.string.link_失败);
mHandler.sendMessage(m);
}
}
;
});
有人能告诉我如何获取https吗?

或者我必须使用SSLSocket来修复它?

我的一个应用程序也面临同样的问题。事实证明,我没有获得在aquery中要求的互联网许可

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


请查看您的androidmanifest.xml中是否存在这些权限。希望这能有所帮助

我知道为时已晚,但如果有人有同样的问题(状态-101),试试这个 在manifest.xml的应用程序标记中添加行



SSL可能会出现很多问题。你能发布这段代码产生的堆栈跟踪吗?问题是状态。getCode()=-101,字符串为空非常奇怪,它返回
-101
,因为所有http状态代码都是正数,但是
101
表示服务器想要升级到HTTPS。我快速查看了AQuery代码,它使用了HttpUrlConnection,它应该能够自动处理升级。这可能是一个愚蠢的问题,但您传递给aq.ajax的url是否以https://开头?如果不是这个问题,可能是服务器端的问题。你能用浏览器访问url吗?如果其他方法都失败了,那可能是aq中的一个bug;您可以使用许多漂亮的android http LIB中的任意一个。此url在浏览器上工作,因此我必须使用其他LIB或编写函数来解决此问题?是否有SSL的示例代码?您当然不必直接使用SSL。我会尝试另一个图书馆。非常简单,只需将单个java文件放到项目中,就可以了。还有一个,这也是非常简单的,尽管您必须向项目中添加一个jar。最后,您可以尝试Android附带的org.apache.http库(DefaultHttpClient和friends),它需要更多的代码行来使用,但可以提供更多的灵活性。在所有这些情况下,您都必须使用AsyncTask。