​​​​​​​Linux下Oracle11g调用http接口和json解析步骤

Linux下Oracle11g调用http接口和json解析步骤

目录

授权及导入第三方jar

Oracle 用户增加java sources 的http工具类

Oracle 用户增加java sources 的json解析工具类

Oracle 用户创建function调用java

Oracle 测试调用http工具

Oracle 测试调用json解析工具


  • 授权及导入第三方jar

  • 登录root

#su - oracle

#cd $ORALE_HOME/bin

  • 通过xftp将jar包上传上述目录
  • 导入jar到Oracle里(需要注意导入jar包的依赖jar包,不然导入后使用会报错

$loadjava -r -f -o -user oracle_userName/password@sid json-org.jar

  • 不使用时将jar删除

$dropjava -r -f -o -user oracle_userName/password@sid json-org.jar

  • 授权普通用户SocketPermission,已达到可以访问对应http接口

$sqlplus / as sysdb

$exec dbms_java.grant_permission( '数据库用户名', 'SYS:java.net.SocketPermission', 'IP:PORT-需要调用的http接口的IP及端口', 'connect,resolve' );

$ commit;

 

 

  • Oracle 用户增加java sources 的http工具类

create or replace and compile java source named httputils as

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.net.URL;

import java.net.HttpURLConnection;

import java.util.*;

import java.net.URLEncoder;

 

public class httpUtils

{

    /**

        urlPath:请求地址

       paramsJson:请求参数  json字符串格式

    **/

    public static String sendRequestPostJson(String urlPath, String paramsJson) throws Exception{

         //发送post请求代码开始

        BufferedReader in = null;

        String result = "";

        try {

            URL realUrl = new URL(urlPath);

            // 打开和URL之间的连接

            HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection();

            // 设置通用的请求属性

            conn.setRequestProperty("accept", "application/json, text/javascript, */*; q=0.01");

            conn.setRequestProperty("Accept-Encoding", "gzip, deflate");

            conn.setRequestProperty("Connection", "keep-alive");

            conn.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.8");

            conn.setRequestProperty("Content-Type", "application/json");

           conn.setRequestProperty("Charset", "UTF-8");

            // 发送POST请求必须设置如下两行

            conn.setRequestMethod("POST");

           conn.setDoOutput(true);

            conn.setDoInput(true);

           conn.setUseCaches(false);

           // 往服务器里面发送数据

            if (paramsJson != null) {

                byte[] writebytes = paramsJson.getBytes("utf-8");

                // 设置文件长度

                conn.setRequestProperty("Content-Length", String.valueOf(writebytes.length));

                OutputStream outwritestream = conn.getOutputStream();

                outwritestream.write(writebytes);

                outwritestream.flush();

                outwritestream.close();

            }

            if (conn.getResponseCode() == 200) {

                in

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值