一些post请求和get请求的调用例子

2023-05-16

目录

post请求

1:http请求,无请求参数,请求包格式为application/json,请求包包含若干字段

get请求

1.http请求,响应类型application/zip,请求结果为下载一个zip的压缩文件

解压下载的压缩包

读取解压后文件的json文件中的数据

         2.get请求,返回json数据


post请求

1:http请求,无请求参数,请求包格式为application/json,请求包包含若干字段

举例:

public String submitFileTransRequestJieTong(String voiceUrl){
    String taskId = "";   // 获取录音文件识别请求任务的ID,以供识别结果查询使用。
    try {
        //请求post
        String urlStr = "http://ip:端口//common/submit?appkey=123&secret=456";
        urlStr = urlStr.replace("\\", "");//
        URL url = new URL(urlStr);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoOutput(true);
        connection.setDoInput(true);
        connection.setRequestMethod("POST");
        connection.setUseCaches(false);//不使用缓存
        connection.setInstanceFollowRedirects(true);
        //设置请求头
        connection.setRequestProperty("Content-Type", "application/json");
        connection.setRequestProperty("connection", "keep-alive");
        connection.connect();
        // POST请求,包装成json数据
        OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
        net.sf.json.JSONObject obj = new net.sf.json.JSONObject();
        //files
        net.sf.json.JSONArray arr = new net.sf.json.JSONArray();
        arr.add(voiceUrl);
        //JsonObject中value存放的是数组
        net.sf.json.JSONArray arrVoice = new JSONArray();
        arrVoice.add(".mp3");
        arrVoice.add(".wav");
        obj.element("files", arr);
        obj.element("folder.exts", arrVoice);
        obj.element("folder.paths", voiceUrl);
        obj.element("audioFormat", "auto");
        obj.element("saveTo.path", "");
        obj.element("saveTo.style", "name");
        obj.element("resultType", "JSON");
        out.write(obj.toString());
        out.flush();
        out.close();
        //读取响应
        InputStream is = null;
        int code = connection.getResponseCode();
        if (code >= 400) {
            is = connection.getErrorStream();
        } else {
            is = connection.getInputStream();
        }
        InputStreamReader inputStreamReader = new InputStreamReader(is);
        BufferedReader reader = new BufferedReader(inputStreamReader);
        String lines;
        StringBuffer sb = new StringBuffer("");
        while ((lines = reader.readLine()) != null) {
            lines = new String(lines.getBytes(), "utf-8");
            sb.append(lines);
        }
        //System.out.println(sb);//接口返回结果
        //String转JSONObject
        com.alibaba.fastjson.JSONObject result = com.alibaba.fastjson.JSONObject.parseObject(sb.toString());
        if(result.getInteger("code") == 10200 ){
            System.out.println("文件识别请求成功响应: " + result.toJSONString());
            taskId = result.getString("taskId");
        }else {
            System.out.println("文件识别请求失败: " + result.toJSONString());
        }
        reader.close();
        //断开连接
        connection.disconnect();
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return taskId;

get请求

1.http请求,响应类型application/zip,请求结果为下载一个zip的压缩文件

举例:

public static void getResultDownload(String taskid) throws Exception {
    String url1 = "http://ip:端口/8k_common/download?appkey=123&secret=456&task=";
    String urlTaskid = url1+taskid;
    urlTaskid = urlTaskid.replace("\\", "");
    //filePath 存放下载文件的地址,response.zip是文件名和文件类型
    String filePath = "E:\\testjieTong\\response.zip";
    FileOutputStream fileOut = null;
    HttpURLConnection conn = null;
    InputStream inputStream = null;
    // 建立链接
    try {
        URL httpUrl = new URL(urlTaskid);
        conn=(HttpURLConnection) httpUrl.openConnection();
        //以Post方式提交表单,默认get方式
        conn.setRequestMethod("GET");
        conn.setDoInput(true);
        conn.setDoOutput(true);
        // post方式不能使用缓存
        conn.setUseCaches(false);
        //连接指定的资源
        conn.connect();
        //获取网络输入流
        inputStream=conn.getInputStream();
        BufferedInputStream bis = new BufferedInputStream(inputStream);
        //判断文件的保存路径后面是否以/结尾
        if (!filePath.endsWith("/")) {
            filePath += "/";
        }
        //写入到文件(注意文件保存路径的后面一定要加上文件的名称)
        fileOut = new FileOutputStream(filePath);
        BufferedOutputStream bos = new BufferedOutputStream(fileOut);
        byte[] buf = new byte[4096];
        int length = bis.read(buf);
        //保存文件
        while(length != -1)
        {
            bos.write(buf, 0, length);
            length = bis.read(buf);
        }
        //先开先关原则
        bos.close();
        bis.close();
        conn.disconnect();

    } catch (IOException e) {
        e.printStackTrace();
    }
}

解压下载的压缩包

public static void  zipUncompress() throws Exception{
    File srcFile = new File("E:\\testjieTong\\response.zip");//获取当前压缩文件
    // 判断源文件是否存在
    if (!srcFile.exists()) {
        System.out.println("源文件不存在");
    }
    //开始解压
    //构建解压输入流
    ZipInputStream zIn = new ZipInputStream(new FileInputStream(srcFile));
    ZipEntry entry = null;
    File file1 = null;
    while ((entry = zIn.getNextEntry()) != null) {
        if (!entry.isDirectory()) {
            file1 = new File("E:\\testjieTong\\response", entry.getName());
            if (!file1.exists()) {
                new File(file1.getParent()).mkdirs();//创建此文件的上级目录
            }
            OutputStream out = new FileOutputStream(file1);
            BufferedOutputStream bos = new BufferedOutputStream(out);
            int len = -1;
            byte[] buf = new byte[1024];
            while ((len = zIn.read(buf)) != -1) {
                bos.write(buf, 0, len);
            }
            // 关流顺序,先打开的后关闭
            bos.close();
            out.close();
        }
    }
}

读取解压后文件的json文件中的数据

public static AliResultData readJson(String taskid) throws IOException {
        AliResultData aliResultData = new AliResultData();
            //下载成功,返回数据
            //读取文本
            File filePath = new File("E:\\testjieTong\\response\\0.json");
            long start = System.nanoTime();
//        List<String> keyword = new LinkedList<>();
            Reader reader = new InputStreamReader(new FileInputStream(filePath), "Utf-8");
            //读取每个字符char
            int ch = 0;
            StringBuffer sb = new StringBuffer();
            while ((ch = reader.read()) != -1) {
                sb.append((char) ch);
            }
            reader.close();
            String result = sb.toString();
            //System.out.println(result);
//        JSONObject rootObj = JSONObject.parseObject(jsonStr);
//        System.out.println(rootObj);
            aliResultData.setResult(result);
            //以换行符切割字符串
//        String[] str = jsonStr.split("\n");
//        for (int i = 0; i < str.length; i++) {
//            System.out.println(JSONObject.parseObject(str[i]).getString("text"));
//            //将每个字符串转为json对象  JSONObject.parseObject(String str);
//            keyword.add(JSONObject.parseObject(str[i]).getString("text"));
//        }
            //System.out.println(JSONObject.parseObject(jsonStr).getString("text"));
            long end  = System.nanoTime();
            System.out.println("time"+(end-start));

        return aliResultData;
    }

2.get请求,返回json数据

举例:
 

public static String getStatus(String taskid) throws IOException {
    String urlStatus = "http://ip:端口/8k_common/query?appkey=123&secret=456&task=";
    String urlTaskid = urlStatus+taskid;
    urlTaskid = urlTaskid.replace("\\", "");
    URL url = new URL(urlTaskid);
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    PrintWriter out = null;
    /**设置URLConnection的参数和普通的请求属性****start***/
    conn.setRequestProperty("accept", "*/*");
    conn.setRequestProperty("connection", "Keep-Alive");
    conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
    conn.setDoOutput(true);
    conn.setDoInput(true);
    conn.setRequestMethod("GET");//GET和POST必须全大写
    conn.connect();
    //获取URLConnection对象对应的输入流
    InputStream is = conn.getInputStream();
    //构造一个字符流缓存
    BufferedReader br = new BufferedReader(new InputStreamReader(is));
    String str = "";
    while ((str = br.readLine()) != null) {
        str=new String(str.getBytes(),"UTF-8");//解决中文乱码问题
        System.out.println(str);
    }
    //关闭流
    is.close();
    //断开连接,最好写上,disconnect是在底层tcp socket链接空闲时才切断。如果正在被其他线程使用就不切断。
    //固定多线程的话,如果不disconnect,链接会增多,直到收发不出信息。写上disconnect后正常一些。
    conn.disconnect();
    return str;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一些post请求和get请求的调用例子 的相关文章

  • 如何使用 Curl 将文件从另一台服务器上传到另一台服务器?

    如何在 Shell 脚本和 PHP 中使用 Curl 将文件从另一台服务器上传到另一台服务器 我有一个 txt 文件存储在存储 Shell 脚本的服务器中 现在我希望将该 txt 文件上传到另一台服务器的特定文件夹中 2台服务器已经连接 t
  • AFNetworking 3 x-www-form-urlencoded 发布数据

    I m trying to post data with x www form urlencoded body Posting via postman it is ok 但我无法通过 afnetworking 3 做到这一点 这是我的代码
  • Aurelia Post 使用 http-fetch-client 生成选项请求

    我正在创建一个小型论坛 我们公司的人员可以使用 aurelia 为他们想要即时销售的商品或服务发布广告 我有一个广告页面列表 工作正常 每个广告的详细信息页面都工作正常 都使用来自 api 的 get 请求 然而 当有人想在广告上添加评论时
  • Ruby on Rails 3:如何分别检索 POST 和 GET 参数?

    我知道你可以使用获取参数params 但问题是它合并了所有参数 无论它们是通过GET or POST 如果您通过以下方式发送请求GET 没问题 参数只能挤在URL里 但如果你发送一个POST具有类似 URL 的请求 blabla foo b
  • 循环遍历 POST 数组

    我需要循环遍历 post 数组并提交它 stuff 1
  • 如何根据请求打开多个浏览器窗口? (PHP)

    所以我有一个表格PHP HTML页 用户将其提交给同一PHP HTML页 现在我将拥有 PHP 页面 POST数据 我想在刷新页面时选择一些弹出浏览器窗口 其中 url 将相对于用户POST要求 喜欢www example com bal
  • Cakephp 验证后,所有表单字段都为空,并出现表单错误

    我有问题 我尝试填写表单 然后单击提交按钮 然后它显示表单错误 但所有文本框字段都变为空白 并且可以显示表单错误 我希望它变得与验证之前相同的值 就像我不想在验证后清除 清空值一样 我做了这样的事情 在视图中 div class regfo
  • Laravel 输入:get() 不起作用

    我正在尝试在 Laravel 4 中使用 post 函数 我的表单有许多字段 在提交时 会转到控制器中的 post 函数 问题是 表单中的字段名称之间有空格 例如 Type 1 是输入的名称 中间有一个空格 现在 当我尝试通过执行以下操作来
  • REST Web 服务 - 动态查询参数

    我需要将动态查询参数发送到 REST Web 服务 GET 方法 如下所示 主机 端口 应用程序 field1 XXX value1 VVV field2 XXX value2 XXX 消费者可以发送参数最多为字段和值 每个字段都映射到值
  • 使用 jQuery 显示 POST 数据?

    我正在使用闪光灯网络摄像头拍照 它工作得很好 并通过 POST 返回一个 URL 我正在用 PHP 进行编码 并希望在收到该 POST 数据后显示该数据 问题是我不重新加载页面 我环顾四周 不确定是否动态加载这个数据数组 我应该去哪里寻找
  • 将数据从 jQuery 传递到 PHP 以进行 ajax post

    你好 我是一个使用 jQuery 和 Ajax 的新手 我正在尝试使用 Jquery POST 方法将数据提交到服务器 我传递的数据是一个字符串 现在我无法理解如何传递数据以及如何检索数据 我尝试搜索有关我的问题的文章 但没有找到 我相信我
  • 如何取消 boost asio io_service 帖子

    如何取消已发布的回调 getIoService gt post boost bind MyClass myCallback this 并保持其他发布的回调不变 问题是我有一些对象从不同线程接收事件 并将它们发布到 ioservice 以便处
  • Python请求响应以utf-8编码但无法解码

    我正在尝试使用 python 抓取我的messenger com facebook Messenger 聊天记录 并且我使用谷歌浏览器开发工具来查看聊天历史记录的 POST 请求 并且我已将整个标头和正文复制为请求可以使用的格式 我得到 H
  • 使用PHP获取http url参数而不自动解码

    我有一个像这样的网址 test php x hello world y 00h 00e 00l 00l 00o 当我将它写入文件时 file put contents x txt GET x gt hello world file put
  • 使用 net/http 发送 Post 请求

    我需要将 JSON 数据发送到同一台计算机上运行的另一个应用程序 我像这样发送请求 rails 3 2 13 data some data hash url URI parse http localhost 6379 api plans r
  • Jquery post 无法在 IE 8 或更早版本中工作

    所以这个功能在除IE以外的所有浏览器中都有效 我只能访问 IE 8 所以不能说新版本是否有效 我无权访问 PHP 或它如何调用 SQL DB 所以我不能肯定地说这是 JavaScript IE 中永远不会触发警报 post http foo
  • iOS 安全性将带有密码的数据发送至服务器或从服务器发送数据

    我正在构建一个应用程序 需要在服务器执行任何操作之前从用户设备发送密码以在服务器上进行身份验证 事情是这样的 用户的手机上有一个纯文本密码 该密码也在服务器中以 bcrypt 二进制文件的形式存在 用户想要从数据库中获取某些内容 因此用户通
  • 尝试使用curl进行GET,发送的值允许为空

    我正在尝试使用curl 来执行一个简单的GET 其中包含一个名为redirect uri 的参数 被调用的 php 文件打印出 GET redirect uri 的空字符串 它显示 red 并且似乎没有发送任何内容 执行获取操作的代码 Ge
  • jquery ajax 发送到 MVC 控制器时不断收到 400(错误请求)

    我的 ajax 调用看起来像这样 ajax actually approve or reject the promotion url url type POST data data PromotionId data UserId data
  • 如何使用 http 将 Android 中的文件从移动设备发送到服务器?

    在android中 如何使用http将文件 数据 从移动设备发送到服务器 很简单 您可以使用 Post 请求并将文件作为二进制 字节数组 提交 String url http yourserver File file new File En

随机推荐

  • mysql锁机制

    MySQL的锁机制 文章目录 MySQL的锁机制1 行锁2 表锁3 页锁4 乐观锁和悲观锁4 1悲观锁4 2乐观锁5 1InnoDB锁的特性 首先对mysql锁进行划分 xff1a 按照锁的粒度划分 xff1a 行锁 表锁 页锁按照锁的使用
  • uboot开发流程

    uboot其实就是一段比较复杂的单片机代码用来作为引导程序 xff0c 它的主要任务是初始化硬件设备 xff0c 将系统的软硬件环境带到一个合适的状态 xff0c 再将内核从一种存储介质读入到内存中 xff0c 然后跳到内核的入口点去运行
  • java的几种IO

    Java IO方式大体上可以分为三类 xff0c 基于不同的io模型可以简单分为同步阻塞的BIO 同步非阻塞的NIO和异步非阻塞的AIO IO又主要可以分为文件IO和网络IO 针对Java的网络IO模型 xff0c 可以看网络IO模型 xf
  • 哈希冲突和一致性哈希

    文章目录 哈希冲突处理哈希冲突1 开放地址法2 再散列法3 链地址法4 建立一个公共溢出区 一致性哈希普通 hash算法普通 hash 算法的缺陷 一致性哈希算法一致性 hash 算法的优点hash 环的倾斜与虚拟节点 哈希冲突 哈希函数又
  • Redis IO多路复用理解

    IO多路复用在Redis中的应用 Redis 服务器是一个事件驱动程序 xff0c 服务器处理的事件分为时间事件和文件事件两类 文件事件 xff1a Redis主进程中 xff0c 主要处理客户端的连接请求与相应 时间事件 xff1a fo
  • 分布式理论CAP,BASE

    什么是CAP理论 xff1f CAP理论指的是一个分布式系统最多只能同时满足一致性 xff08 Consistency xff09 可用性 xff08 Availability xff09 和分区容错性 xff08 Partition to
  • javaEE接收request参数以及输出结果到html页面

    1 引入需要的类 这里需要注意 xff0c servlet类不是jre自带的 xff0c 需要自己添加 添加相关类主要有以下两种方式 xff1a 下载servlet api jar xff08 tomcat自带 xff09 然后添加到cla
  • 西门子博途数据块(DB块)快速导入导出

    有些人可能会想用查表法计算CRC校验码 查表法效率和速度都很高 但是空间换时间 让你用几秒钟时间 把一张完整的表存入博途里 就算了你单身20年的手速估计也完成不了 想要几秒钟完成也不是不可以 就是导入别人的源文件 拿来主义当然块 继续上图
  • opencv4.0学习笔记

    目录 课程来源 xff1a 哔哩哔哩大学 第一节课 显示第一张图片 环境配置了一个早上 xff0c 到10 48分配置完毕 xff0c 有点难受 还好最后显示出第一张图片 include span class token operator
  • 程序人生

    http zhan renren com itonline from 61 template amp checked 61 true
  • 传感器的使用(一)-火焰传感器

    火焰传感器的介绍 1 工作电压 xff1a DC 3 3V 5V 2 灵敏度可调 xff08 可调电位器 xff09 3 工作温度 xff1a xff0d 10 xff0b 50 4 设有固定螺铨孔 xff0c 方便安装 5 探测角度 60
  • 传感器的使用(二)-温湿度传感器DHT11(HAL库实现)

    温湿度传感器的介绍 DHT11技术性能特征 工作电压范围 xff1a 3 3V 5 5V 工作电流 xff1a 平均0 5mA 输出 xff1a 单总线数字信号 测量范围 xff1a 湿度20 90 xff05 RH xff0c 温度0 5
  • Makefile详解及使用

    内容来自大丙老师的blog Makefile简介 linux环境下 xff0c 当用户编译文件过多的时候 xff0c 使用makefile可以帮助模块化编译文件 xff0c makefile是一个脚本文件 xff0c 根据规则 xff0c
  • QT绘制实时动态曲线——qcustomplot使用(二)

    在QT绘制实时动态曲线 qcustomplot使用 xff08 一 xff09 中 xff0c 介绍使用官方的demo实现动态实时曲线 官方代码移植 针对动态显示数据项目要求 xff0c 移植官方代码demo 开启绘图的函数 span cl
  • QT的多种功能使用记录

    设置控件的边角为圆角 xff1a border top left radius 设置左上角圆角 border top right radius 设置右上角圆角 border bottom left radius 设置左下角圆角 border
  • MYSQL之视图的使用

    视图的使用 使用视图的好处 1 简化select的字段 xff0c 方便管理 2 可以针对不同用户 xff0c 对视图进行不同的查看 也就是说可以做权限管理 3 视图的语法 CREATE VIEW MYTEST AS select 列车号
  • 模糊PID之matlab模糊控制器配置

    前言 使用模糊PID时 xff0c 需要对工具库进行配置 xff0c 模糊PID是由2个输入个3个输出组成 xff0c 输出是E和Ec xff0c 输出是Kp Ki和Kd 打开matlab后 xff0c 需要配置 MATLAB模糊配置 1
  • java url后面带sessionid_url中jsessionid的理解

    1 这是一个保险措施 因为Session默认是需要Cookie支持的 但有些客户浏览器是关闭Cookie的 这个时候就需要在URL中指定服务器上的session标识 也就是5F4771183629C9834F8382E23BE13C4C 用
  • stm32简介+gpio的C语言封装

  • 一些post请求和get请求的调用例子

    目录 post请求 1 http请求 无请求参数 请求包格式为application json 请求包包含若干字段 get请求 1 http请求 响应类型application zip 请求结果为下载一个zip的压缩文件 解压下载的压缩包