com.android.volley.NoConnectionError:javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidatorException

问题描述 投票:0回答:1

我需要从php文件到myresulttextview获取回显值ie(是或否)但无法检索它说错误:“com.android.volley.NoConnectionError:javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚。“

val barcode = data.getParcelableExtra<Barcode>(BarcodeCaptureActivity.BarcodeObject)
                        val p = barcode.cornerPoints
                        var m = barcode.displayValue.toString().trim()
                        val jsonobj=JSONObject()
                        jsonobj.put("email",m)
                        val url="https://192.168.2.11/verf1.php"
                        val que=Volley.newRequestQueue(this@MainActivity)
                        val req=JsonObjectRequest(Request.Method.POST,url,jsonobj,Response.Listener {
                            response ->mResultTextView.setText(response.toString())


                        },Response.ErrorListener {
                            response ->mResultTextView.setText(response.toString())

                        })
                        que.add(req)

我的php文件

<?php
require "conn.php";
$user_name=false;
if(isset($_POST["email"])){
    $user_name = $_POST["email"];
}
$mysql_qry="select *  from exitpass where email like '%".$user_name."%'";
$result=mysqli_query($conn,$mysql_qry);

if(mysqli_num_rows($result)>0)
{
echo"yes";
}
else{
echo"no";}
?>
android android-studio kotlin
1个回答
0
投票

该错误与您的192.168.2.11 Web服务器关联的TLS / SSL证书有关。根据您的设置,有几种不同的方法可以解决此问题。

如果您的Web服务器上没有安装证书,则用http替换https以通过未加密的通道发送。

 val url="http://192.168.2.11/verf1.php"

如果Web服务器确实安装了证书,那么您可能会遇到一些问题。与堆栈跟踪相关的常见问题是无效的证书,使用错误的(或没有)域名,加密类型和Java版本的错误Java代码,在信任链中的某个地方发布,过期的证书等。

总而言之,我认为您只需要通过http发送,但如果这不起作用,您应该按此顺序对其进行故障排除。

  1. 将IP更改为与证书关联的域名
  2. 确认您可以在浏览器中访问您的资源,并且证书未过期
  3. 找出您正在使用的加密类型(TLS 1.1,TLS 1.2等)以及您正在使用的Java(1.6或1.7)。 Java 6和Java 7之间存在一个关键区别,因为它与访问TLS加密资源有关,我在最高评级的帖子中作为参考解释它。
  4. 如果所有其他方法都失败了,您可能需要在Androids JVM信任库中手动安装证书。我相信你可以从大多数GUI中做到这一点,如果你有权限,肯定可以从终端做到这一点。您不应该这样做,但有时如果证书链断裂,您将被迫。它甚至可能不是您的证书导致问题,它可以是您信任链中的任何证书。

如果最初的建议有效,请告诉我。如果它不起作用,请在这里提供公共证书(或者只是域名,我会把它拉下来)和你的Java版本,我可以更好地协助。

© www.soinside.com 2019 - 2024. All rights reserved.