RestClient(接口请求)
一、电子签章:通过接口,传入参数中有pdf文件,和其他参数,在文件上盖上电子签章。
引入:通过NuGet安装RestSharp,注意版本。
备注:如果后面程序运行有错,可以看是引用是否更改了web.config文件(一般会更改Newtonsoft.Json的版本)
代码:
/// <summary>/// 电子签章(盖章)/// </summary>/// <param name="apiUrl"></param>/// <param name="filePath"></param>/// <param name="type">为1 表示报名确认函 为2 表示邀约人员名单</param>/// <returns></returns>public static string SendCaESignature(string apiUrl, string filePath, string type){try{#region 初始化参数string url = ConfigurationManager.AppSettings["caESignature"].ToString() + apiUrl;string picName = "***.gif";string certName = "***.pfx";string page = "0";string posX = "";string posY = "";// 确认涵 x、y轴string hanPosX = ConfigurationManager.AppSettings["hanPosX"].ToString();string hanPosY = ConfigurationManager.AppSettings["hanPosY"].ToString();// 邀约人员名单string joinPosX = ConfigurationManager.AppSettings["joinPosX"].ToString();string joinPosY = ConfigurationManager.AppSettings["joinPosY"].ToString();// 不同名单,签章位置不一样if (type == "1"){posX = hanPosX;posY = hanPosY;}else{posX = joinPosX;posY = joinPosY;}#endregion#region 将文件转成二进制byte[] fileContentByte = new byte[10240]; // 文件内容二进制FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);fileContentByte = new byte[fs.Length]; // 二进制文件fs.Read(fileContentByte, 0, Convert.ToInt32(fs.Length));fs.Close();#endregionstring postUrl = ConfigurationManager.AppSettings["caESignature"].ToString();var restClient = new RestClient(postUrl);RestRequest re = new RestRequest(apiUrl, Method.POST);re.AddQueryParameter("picName", picName);re.AddQueryParameter("certName", certName);re.AddQueryParameter("page", page);re.AddQueryParameter("posX", posX);re.AddQueryParameter("posY", posY);re.AddFileBytes("pdfFile", fileContentByte, "报名确认涵", "application/octet-stream");return restClient.Execute(re).Content;}catch (Exception e){FileHelper.Log("电子签章:" + e.Message);return "";}}
二、下载电子签章:通过接口下载二进制文件流
代码:
/// <summary>/// 下载电子签章/// </summary>/// <param name="fileIden"></param>/// <returns></returns>public static string DownFileCA(string fileIden){try{//创建本地缓存文件夹string basePath = System.Web.HttpContext.Current.Server.MapPath("~/Temp/");if (!Directory.Exists(basePath)){Directory.CreateDirectory(basePath);}string filePath = basePath + string.Format("PDF_{0}.pdf", Guid.NewGuid().ToString("N"));string returnPath = "";if (File.Exists(filePath)){//如果已经存在,那么就不需要拷贝了,如果没有,那么就进行拷贝return returnPath;}else{FileStream fs = File.Create(filePath);fs.Close();}string postUrl = ConfigurationManager.AppSettings["caESignature"].ToString();var restClient = new RestClient(postUrl);RestRequest re = new RestRequest("/Signature/download", Method.POST);re.AddQueryParameter("fileIden", fileIden);byte[] byteArray = restClient.DownloadData(re);using (FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write)){fs.Write(byteArray, 0, byteArray.Length);fs.Close();}return filePath;}catch (Exception ex){FileHelper.Log("电子签章:" + ex.Message);return "";}}
转载于:https://www.cnblogs.com/yxzs/p/10795068.html
RestClient(接口请求)相关推荐
- 接口定义,常见的接口,常见的接口请求方式,put请求和patch请求的区别
接口定义:应用程序编程接口,指前后端数据交互的一套标准,包括软件内部之间的接口,硬件之间的接口或者是软件对外的接口. 常见的接口类型: 1,Webservice接口,主要用于服务端的接 ...
- java跨域权重_爱站权重查询 API 接口请求调用
原标题:爱站权重查询 API 接口请求调用 爱站权重查询 API 接口在网上已经很多且大都封装成了 API 供别人调用.支持前台跨域请求,以GET/POST方式提交即可.爱站权重查询 API 接口可以 ...
- python http接口_python处理http接口请求
一.安装 requests和jsonpath 模块 安装命令:pip install requests pip install jsonpath 二.requests 处理常见的接口请求参数类型 1. ...
- dubbo接口测试_Django测试工具平台之Dubbo接口请求 + 前端
前言 本章内容主要完成以下几个内容: 1.记录Dubbo接口请求 2.搜索请求记录 3.前端页面完成 4.项目第一阶段展示 项目展示中主要演示在本地如何启动项目,进行调试.如果需要部署线上环境,可以去 ...
- 通过RobotFramework简单的接口请求示例
为什么80%的码农都做不了架构师?>>> 一个简单的接口请求示例,接口测试将在此基础上进行! 库文件的导入: 需要导入的库 Collections 和 RequestsLibr ...
- 接口请求,上传byte数组byte[]数据异常,负数变正数/负数变63
接口请求,上传byte数组byte[]数据异常,负数变正数/负数变63 参考文章: (1)接口请求,上传byte数组byte[]数据异常,负数变正数/负数变63 (2)https://www.cnbl ...
- Python接口自动化实战 ( 第一阶段) - 封装接口请求类和异常处理
1.封装http接口请求 已经实现了一个简单的接口请求,接下来就要考虑封装这个请求,在后面的用例中,只需要传递参数(URL ,Params,cookie,heade,method 等)每次去调用这个请 ...
- jmeter根据循环获取参数_jmeter forEach循环获取response参数值进行接口请求
jmeter forEach循环获取response参数值进行接口请求 注意: 一,ForEach控制器 输入变量前缀:输入正则表达式变量的引用名称即可 Start index for loop(ex ...
- java 请求响应_java http接口请求响应 request response
接口类: 1 package org.sunshine.dcda.epg.wechat.controller.niao; 2 3 import javax.servlet.http.HttpServl ...
- python写后台接口请求出错_python登录接口测试问题记录与解决
最近做一个登录接口测试中,发现了以下的一些场景,本次将所遇到的问题以及解决过程做下记录: 1.抓包发现登录操作时,先后请求三个接口,并且每个接口有关联 2.每次请求都需要保留cookie信息,下个接口 ...
最新文章
- Retrofit2 源码解析之动态代理
- 基于JavaWeb实现在线租房系统
- 寻找实力高手长期合作
- Linux下history命令详解---转载
- linux命令we,Linux学习篇之基础命令
- 如何处理大流量高并发
- 判断无向图是否有回路有四种方法
- python下载哪个版本好-Python下载哪个版本比较好?
- centos虚拟机复制后网络重启出错解决
- <C++>我用煮粽子的时间拿捏了类和对象中友元的全部形式
- matlab中的graythresh函数的实例
- ubuntu下定时自动备份数据库
- 3. fooView rxjava + rxandroid + retrofit 安卓开发框架搭配 az kj
- 英语语法汇总(1.名词)
- 20221015 动量矩定理
- 这几招你都会了吗?新手必备,以后少修车哦!
- 【Linux Note】centos 7 / 8 通过修改网络配置文件 ifcfg-ens33来设置静态IP
- 专访汇付数据副总裁姜靖宇:“纸上谈兵”时代终结,人工智能将变革第三方支付行业
- VGA显示学号姓名以及彩条
- 中国五笔 v2.4 下载