「java调用ncnn」java调用https跳过证书

博主:adminadmin 2022-11-29 15:39:07 53

今天给各位分享java调用ncnn的知识,其中也会对java调用https跳过证书进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java如何调用对方http接口 新手虚心求教

import java.io.BufferedReader;  

import java.io.DataOutputStream;  

import java.io.InputStreamReader;  

import java.net.HttpURLConnection;  

import java.net.URL;  

import java.net.URLEncoder;  

  

public class DemoTest1 {  

  

    public static final String GET_URL = "";  

//    public static final String POST_URL = "";  

    // 妙兜测试接口  

    public static final String POST_URL = "";  

      

    /** 

     * 接口调用 GET 

     */  

    public static void httpURLConectionGET() {  

        try {  

            URL url = new URL(GET_URL);    // 把字符串转换为URL请求地址  

            HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 打开连接  

            connection.connect();// 连接会话  

            // 获取输入流  

            BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));  

            String line;  

            StringBuilder sb = new StringBuilder();  

            while ((line = br.readLine()) != null) {// 循环读取流  

                sb.append(line);  

            }  

            br.close();// 关闭流  

            connection.disconnect();// 断开连接  

            System.out.println(sb.toString());  

        } catch (Exception e) {  

            e.printStackTrace();  

            System.out.println("失败!");  

        }  

    }  

      

    /** 

     * 接口调用  POST 

     */  

    public static void httpURLConnectionPOST () {  

        try {  

            URL url = new URL(POST_URL);  

              

            // 将url 以 open方法返回的urlConnection  连接强转为HttpURLConnection连接  (标识一个url所引用的远程对象连接)  

            HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 此时cnnection只是为一个连接对象,待连接中  

              

            // 设置连接输出流为true,默认false (post 请求是以流的方式隐式的传递参数)  

            connection.setDoOutput(true);  

              

            // 设置连接输入流为true  

            connection.setDoInput(true);  

              

            // 设置请求方式为post  

            connection.setRequestMethod("POST");  

              

            // post请求缓存设为false  

            connection.setUseCaches(false);  

              

            // 设置该HttpURLConnection实例是否自动执行重定向  

            connection.setInstanceFollowRedirects(true);  

              

            // 设置请求头里面的各个属性 (以下为设置内容的类型,设置为经过urlEncoded编码过的from参数)  

            // application/x-javascript text/xml-xml数据 application/x-javascript-json对象 application/x-www-form-urlencoded-表单数据  

            // ;charset=utf-8 必须要,不然妙兜那边会出现乱码【★★★★★】  

            connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");     

              

            // 建立连接 (请求未开始,直到connection.getInputStream()方法调用时才发起,以上各个参数设置需在此方法之前进行)  

            connection.connect();  

              

            // 创建输入输出流,用于往连接里面输出携带的参数,(输出内容为?后面的内容)  

            DataOutputStream dataout = new DataOutputStream(connection.getOutputStream());  

              

            String app_key = "app_key="+ URLEncoder.encode("4f7bf8c8260124e6e9c6bf094951a111", "utf-8");        // 已修改【改为错误数据,以免信息泄露】  

            String agt_num = "agt_num="+ URLEncoder.encode("10111", "utf-8");              // 已修改【改为错误数据,以免信息泄露】  

            String pid = "pid="+ URLEncoder.encode("BLZXA150401111", "utf-8");             // 已修改【改为错误数据,以免信息泄露】  

            String departid = "departid="+ URLEncoder.encode("10007111", "utf-8");         // 已修改【改为错误数据,以免信息泄露】  

            String install_lock_name = "install_lock_name="+ URLEncoder.encode("南天大门", "utf-8");  

            String install_address = "install_address="+ URLEncoder.encode("北京育新", "utf-8");  

            String install_gps = "install_gps="+ URLEncoder.encode("116.350888,40.011001", "utf-8");  

            String install_work = "install_work="+ URLEncoder.encode("小李", "utf-8");  

            String install_telete = "install_telete="+ URLEncoder.encode("13000000000", "utf-8");  

            String intall_comm = "intall_comm="+ URLEncoder.encode("一切正常", "utf-8");  

              

            // 格式 parm = aaa=111bbb=222ccc=333ddd=444  

            String parm = app_key+ agt_num+ pid+ departid+ install_lock_name+ install_address+ install_gps+ install_work+ install_telete+ intall_comm;  

              

            // 将参数输出到连接  

            dataout.writeBytes(parm);  

              

            // 输出完成后刷新并关闭流  

            dataout.flush();  

            dataout.close(); // 重要且易忽略步骤 (关闭流,切记!)   

              

//            System.out.println(connection.getResponseCode());  

              

            // 连接发起请求,处理服务器响应  (从连接获取到输入流并包装为bufferedReader)  

            BufferedReader bf = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));   

            String line;  

            StringBuilder sb = new StringBuilder(); // 用来存储响应数据  

              

            // 循环读取流,若不到结尾处  

            while ((line = bf.readLine()) != null) {  

//                sb.append(bf.readLine());  

                sb.append(line).append(System.getProperty("line.separator"));  

            }  

            bf.close();    // 重要且易忽略步骤 (关闭流,切记!)   

            connection.disconnect(); // 销毁连接  

            System.out.println(sb.toString());  

      

        } catch (Exception e) {  

            e.printStackTrace();  

        }  

    }  

      

    public static void main(String[] args) {  

//        httpURLConectionGET();  

        httpURLConnectionPOST();  

    }  

}

我想让java连接sql数据库并且可以操作数据库执行sql语句具体怎么操作呢?

首先创建连接

就创建个Cnnection对象,然后把驱动加上,还有帐号密码什么的!我没连过sql数据库,不知道驱动,你可以在网上搜一下。

给你一个我连接mysql数据库的例子

public Connection Getdata(){//这是连接数据库的一个方法,还可以配置连接池。

Connection con=null;

try {

Class.forName("com.mysql.jdbc.Driver");//加驱动

con=DriverManager.getConnection("jdbc:mysql://localhost:3306/data","root","qq");//数据库路径、端口、库名、数据库用户名和密码

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

return con;

}

public void delete(int id){//对数据库进行操作的方法,先调用上面写好的连接!

Connection con=Getdata();

Statement st;

try {

st=con.createStatement();

st.executeUpdate("delete from kaoshi where id="+id);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

NCNN使用总结

关于安装、编译、使用步骤等不在赘述, 官网 有很详细文档

使用caffe模型的时候,input部分一定要写成规范格式:

千万别图省事写成如下格式,caffe可以运行没问题,但是转化无法识别,这个ncnn数据结构导致!!!

网络定义的层千万别出现重复情况,一定要规范定义:

千万别写成如下网络,在caffe可以稳定运行,但是ncnn会读取上第一次出现的top层!!!

第一层输出是 concat_out1 ,第二层输出也是 concat_out1 ,当使用 ncnn.extract 会出现错误!!!

这貌似是算作 caffe 的问题,在笔者使用的过程忽略了这一点,干脆算 NCNN 操作里面了。

Batch Normalization 层有个 use_global_stats 参数,这个操作的作用是: 是否使用caffe内部的均值和方差

换句话的意思就是:

--------- true :使用caffe内部的均值和方差,其中方差和均值都是固定的,模型训练好之后,这两个值就固定了。

--------- false :使用当前层计算的方差和均值,这个是不固定的,是在训练过程一直改变,训练好的时候达到最优。

其中 NCNN 默认使用 true 状态,不管是 false 还是 true ,最终都是算作 true

caffe 测试的时候得手动设置为 true

正常来说 ncnn 和 caffe 原版的误差范围在 0.001 左右,我的数据在 0.000X 范围徘徊,如果你的数据精确不到第三个有效数字,那就得检查网络输入精度了。

输入的 substract_mean_normalize 得尽量精确,尤其是归一化的值!!!

假设 0-255 的图像需要归一化到 0-1 :

千万不要写成下面这样,读者可以自己测试,精度差别较大。

这里没有错误点,只有心得点。

看了NCNN的官网给的例子,它是将输出转化为一行数据,然后一个一个的进行处理:

个人感觉使用这种处理小数据还是可以的,本人使用网络输出 100 × 100 × 10 ,这种情况该如何处理?

本人使用处理如下:

NCNN官网有个人问能不能输入和输出多个通道数据,后者已经在上文实现,以下看前者。

java 里面怎样执行 语句块,就是declare 那种,不是那些单一的SQL语句。

我想你可能是要调用匿名块,既然是匿名的,你怎么调用呢?

调用都是按名字去调的

你可以把它写成存储过程再调用

jdbc调用

SQL Server语句:

CREATE PROCEDURE show

@N varchar(10),

@P varchar(10) output

AS

select @p=au_pwd from useTab where au_name=@N

GO

存储过程代码:

public static void main(String[] args) {

Connection cnn = null;

CallableStatement cs = null;

try {

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

} catch (Exception e) {

System.out.print(e.getMessage());

}

try {

cnn = DriverManager

.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databaseName=hibernateDB","sa","");

} catch (Exception e) {

System.out.print(e.getMessage());

}

try {

cs = cnn.prepareCall("{call show(?,?)}");

cs.setString(1,"a");

cs.registerOutParameter(2,Types.VARCHAR);

cs.execute();

System.out.print("return="+cs.getInt(1));

} catch (Exception e) {

System.out.print(e.getMessage());

}

}

关于java调用ncnn和java调用https跳过证书的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-29,除非注明,否则均为首码项目网原创文章,转载请注明出处。