URL类型入参串调用接口
最近通过调用另一个合作公司提供的接口实现方法,借鉴同事之前编写的方法
Models.JSON.Patient类中有各种属性,也可增加属性来满足新需求
public string TakeAppoint(string AppointCode, string RefundAmount, string BusinessSource)
{
try
{
//调用地址
string strUrl = UrlSet.Default.UrlTakeAppoint;
//将参数赋入地址
strUrl = string.Format(strUrl, AppointCode, RefundAmount, BusinessSource);
//调用web
string returnValue = Analytical.Invoke(strUrl);
//解析返回值
Models.JSON.Patient patient = Analytical.AnalyticalJson(returnValue);
if (Analytical.errCode < 1)
{
this.errCode = Analytical.errCode;
this.errMsg = Analytical.errMsg;
return "-1|" + Analytical.errMsg;
}
return "1|" + AppointCode + "|" + RefundAmount + "|" + BusinessSource;
}
catch (Exception ex)
{
this.errCode = -1;
this.errMsg = ex.Message + ex.StackTrace;
Logger.WriteLog(errMsg, true);
return "-1|" + errMsg;
}
}
下面的方法可以从返回的URL串中获取需要的参数
public static string Invoke(string strUrl)
{
string returnValue = string.Empty;
try
{
Logger.FolderName = "CAREATE";
Logger.WriteLog(string.Format(Logger.ProcessHISMessageFormat, "入参", strUrl, "", ""), false);
// 调用接口
System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(strUrl);
System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
System.IO.StreamReader streamRead = new System.IO.StreamReader(response.GetResponseStream(), Encoding.UTF8);
returnValue = streamRead.ReadToEnd();
streamRead.Close();
Logger.FolderName = "CAREATE";
Logger.WriteLog(string.Format(Logger.ProcessHISMessageFormat, "出参", strUrl, returnValue, ""), false);
return returnValue;
}
catch (Exception ex)
{
return returnValue;
}
}
解析返回值,赋入Models.JSON.Patient实体中
public static Models.JSON.Patient AnalyticalJson(string returnValue)
{
Models.JSON.Patient patient = new Models.JSON.Patient();
if (string.IsNullOrEmpty(returnValue))
{
errCode = -1;
errMsg = "未获取到数据!";
return patient;
}
// 取result值
JObject jsMessage = JObject.Parse(returnValue);
string returnCode = (string)jsMessage["result"];
if (returnCode == "-1")
{
errCode = -1;
errMsg = (string)jsMessage["message"];
return null;
}
// 解析返回值编码
string msg = AnalyticalCode(returnCode);
if (!string.IsNullOrEmpty(msg))
{
errCode = -1;
errMsg = msg;
return patient;
}
// 返回数据行数
int rows = Convert.ToInt32(jsMessage["data"]["total"].ToString());
if (rows < 0)
{
errCode = -1;
errMsg = "未获取到数据!";
return patient;
}
JArray jar = JArray.Parse(jsMessage["data"]["rows"].ToString());
patient = Deserialize<Models.JSON.Patient>(jar[0].ToString());
errCode = 1;
return patient;
}
URL类型入参串调用接口的更多相关文章
- 字节码编程,Javassist篇二《定义属性以及创建方法时多种入参和出参类型的使用》
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 在上一篇 Helloworld 中,我们初步尝试使用了 Javassist字节编程的 ...
- MyBatis版本升级导致OffsetDateTime入参解析异常问题复盘
背景 最近有一个数据统计服务需要升级SpringBoot的版本,由1.5.x.RELEASE直接升级到2.3.0.RELEASE,考虑到没有用到SpringBoot的内建SPI,升级过程算是顺利.但是 ...
- 入参为json类型的接口测试示例
一.接口文档内容 二.使用postman(入参为json类型) 如下部分内容即是json串: { "name":"刘星", "grade": ...
- 8-2 开发接口 (入参是json格式)
1.开发入参事json格式的接口 import json import tools import flask from .check_session import check_session serv ...
- (一)将mockjs集成到VUE中后,怎样根据接口入参返回mock结果
1)安装mockjs,这一步跳过 2)在项目中建立mock模块,笔者的目录结构如下 mock模块与接口模块一一对应,有一个接口,就有一个mock 3)编写登陆模块mock接口,代码如下: import ...
- robot:接口入参为图片时如何发送请求
https://www.cnblogs.com/changyou615/p/8776507.html 接口是上传图片,通过F12抓包获得如下信息 由于使用的是RequestsLibrary,所以先看一 ...
- dubbo接口方法重载且入参未显式指定序列化id导致ClassCastException分析
问题描述&模拟 线上登录接口,通过监控查看,有类型转换异常,具体报错如下图 此报错信息是dubbo consumer端显示,且登录大部分是正常,有少量部分会报类型转换异常,同事通过更换方法名+ ...
- C#构造函数在继承时必须要求与父类型构造函数入参相同怎么办?
摘要 我们都知道,C#中,在类型继承时,由于构造子类必须先构造其父类型的内容,因此,必须子类型的构造函数中调用父类型的构造函数(无参数的不需要显式声明). 但是往往我们会出现,子类型本身的构造函数大于 ...
- 从输出日志中提取接口的入参和返回做为用例导入到excel中
1 背景 接口用例已经在项目中的yml文件中编写,但是yml文件不能做为交付文档用,本文对工作中从接口输出日志中提取用例信息,并导入到excel文件中做了总些 2 工具 idea,notepad+ ...
随机推荐
- SQLite剖析之事务处理技术
前言 事务处理是DBMS中最关键的技术,对SQLite也一样,它涉及到并发控制,以及故障恢复等等.在数据库中使用事务可以保证数据的统一和完整性,同时也可以提高效率.假设需要在一张表内一次插入20个人的 ...
- Synchronized
1. 在编写一个类时,如果该类中的代码可能运行与多线程环境下,就要考虑同步问题了. 会同时被多个线程访问的资源,就是竞争资源,也称为竞争条件.对于多线程共享的资源我们必须进行同步,以避免一个线程的改动 ...
- NSArray 倒序 输出
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"1",@"2",@"3" ...
- jQuery Colorpicker Spectrum api 中文 文档 属性 事件 方法
jQuery Colorpicker Spectrum 所需的CSS和JavaScript文件: <script src='spectrum.js'></script> < ...
- CSS3选择器:nth-of-type
碰到了个选择器,:nth-of-type <!DOCTYPE html> <html> <head> <meta http-equiv="Conte ...
- c# 程序设计教程笔记
值类型:[简单类型[整数类型(sbyte,byte,short,ushort,int uint,long....),字符类型),布尔类型,实数类型],结构类型, 枚举类型]. 引用类型:[类,委托,数 ...
- Win7中怎么不经确认直接删除文件至回收站
Win7中怎么不经确认直接删除文件至回收站.. 1.双击桌面回收站的图标,进入回收站后,在空白处点击右键,选择属性:2.在回收站的属性对话框,最下边,把"显示删除确认对话框”前边的√去掉,应 ...
- 安卓log4k问题解决
1.直接上代码 //log4k问题 public static void log(String tag, String str) { int index = 0; // 当前位置 int max = ...
- 大熊君大话NodeJS之------Connect中间件模块(第一季)
一,开篇分析 截止到今天来说,NodeJS系列文章已经有将近十篇了,让我们回顾一下: (1),大熊君大话NodeJS之开篇------Why NodeJS(将Javascript进行到底) (2),大 ...
- tyvj1202 数数食物链
描述 TsyD学习了生物的生态环境那一张后,老师留了一项作业,就是给一张食物网,求所有食物链的总数.(从最低营养级生物(它不能吃任何其他的生物)开始到最高营养级(它不能被任何其他生物吃) 叫做一条食物 ...