搜索
简帛阁>技术文章>phonegap 解决https访问问题

phonegap 解决https访问问题

ios报错

在AppDelegate.m文件在最后加入(在@end后面加空行):

@implementation NSURLRequest(DataController) + (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host {

   return YES;
} @end

 

 

 

android没出错,出错可以这么解决

main.java,友盟继承的可以不用看:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
public class main extends CordovaActivity   
{  
        
    @Override  
    public void onCreate(Bundle savedInstanceState)  
    {  
        super.onCreate(savedInstanceState);  
        UmengUpdateAgent.setUpdateOnlyWifi(false);  
        UmengUpdateAgent.update(this);  
        super.init();  
        // Set by <content src="index.html" /> in config.xml  
        super.loadUrl(Config.getStartUrl());  
        
        //super.loadUrl("file:///android_asset/www/index.html")  
    }  
  
    @Override  
    protected CordovaWebViewClient makeWebViewClient(CordovaWebView webView) {  
        // TODO Auto-generated method stub  
         if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB) {  
                return new SSLAcceptingCordovaWebViewClient(this, webView);  
            } else {  
                return new SSLAcceptingIceCreamCordovaWebViewClient(this, webView);  
            }  
    }  
}  

SSLAcceptingCordovaWebViewClient:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
import org.apache.cordova.CordovaInterface;  
import org.apache.cordova.CordovaWebView;  
import org.apache.cordova.CordovaWebViewClient;  
import org.apache.cordova.DroidGap;  
  
import android.net.http.SslError;  
import android.webkit.SslErrorHandler;  
import android.webkit.WebView;  
  
public class SSLAcceptingCordovaWebViewClient extends CordovaWebViewClient{  
      
    public SSLAcceptingCordovaWebViewClient(CordovaInterface cordova, CordovaWebView view) {  
        super(cordova, view);  
        // TODO Auto-generated constructor stub  
    }  
  
        @Override  
        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {  
            // testing against getPrimaryError() or hasErrors() will fail on Honeycomb or older.  
            // You might check for something different, such as specific info in the certificate,  
            //if (error.getPrimaryError() == SslError.SSL_IDMISMATCH) {  
                handler.proceed();  
            //} else {  
            //    super.onReceivedSslError(view, handler, error);  
            //}  
        }  
}  

SSLAcceptingIceCreamCordovaWebViewClient.java,名字有点长,网上参考下来的,也懒得去改了:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
import org.apache.cordova.CordovaInterface;  
import org.apache.cordova.CordovaWebView;  
import org.apache.cordova.IceCreamCordovaWebViewClient;  
  
import android.net.http.SslError;  
import android.webkit.SslErrorHandler;  
import android.webkit.WebView;  
  
public class SSLAcceptingIceCreamCordovaWebViewClient extends IceCreamCordovaWebViewClient {  
    public SSLAcceptingIceCreamCordovaWebViewClient(CordovaInterface cordova, CordovaWebView view) {  
        super(cordova, view);  
    }  
  
    @Override  
    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {  
        handler.proceed();  
    }  
}  

 

目录java后端通过https获取图片报错如下安装证书,解决然后又报错解决java后端通过https获取图片publicstaticvoidmain(String[]args){try{Buffere
HTTPS解决问题有了大家熟悉的HTTP之后,为什么还会诞生HTTPS呢?那是因为HTTP存在很多问题,比如:无状态、不安全等而HTTPS不是一个新的协议,其实只是相当对HTTP安全的一个升级。在介
一般我们构建的docker镜像使用的都是alpinelinux系统,默认是不带cacertificates根证书的,导致无法识别外部https携带的数字证书。在访问的时候,会抛出509:certifi
idhttp访问HTTPS访问一个WEB网站,如果采用HTTP的话,直接使用TIdHTTP这个控件,最简单的用法是:S:IdHTTP1Get('wwwqqcom');这里返回的S就是对应的网页的文本
后端API使用Httpclient访问一个https服务端接口时出现HandshakeFailure,也就是握手失败postman调用没问题pythonrequestsverifyFalse调用也没
解决方法1、去掉upload产生问题原因:root路径原理:Nginxroot配置的意思是,会在root配置的目录后跟上location路径,组成对应的文件路径。意思就是我们在浏览器输入的这个地址实际
几天网站访问出现第一次打开网站特别慢,打开以后页面打开速度正常的问题,经过研究发现是HTTPS证书验证超时的问题,证书商的验证URL无法访问不知道是线路问题还是被墙了。请教了几位大神如何解决HTTP
人可能会问我为什么不做rewrite,但是我的情况是apache下有多个网站,只有一个网站需要https,本人也无法想到如何用rewrite解决这样的情况该文的基础建立在https已经可以访问,而h
HTTPS是HTTPoverSecureSocketLayer,以安全为目标的HTTP通道,所以在HTTPS承载的页面上不允许出现http请求,一旦出现就是提示或报错:MixedContent:Th
路由要从httpredirect到https,可以改nginx/apache配置。如果不想在webserver中做这些修改配置,可以尝试在laravel框架中解决在网上里看到的一个方案是写一个全局中间