C#调用WebAPI的HTTP服务
话不多说直接上代码
需要引用如下三个
using System.Net;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
一般调用WEBAPI的JSON字符串如下
{"UserId":"admin","UserName":"admin","Token":"Token","RequestName":"functionName","JsonData":"[{'Task1':test1,'Task2':'test2','Flag':0},{'Task1':'2020','Task2':'2019','Flag':1}]","ClientIP":null
}
JSONData里面的一定要是单引号,目前C#测试是这样的,但是用C#试调过程中监视器里看到的都是双引号+斜杠,拷出来是不能用的
调用过程主要如下方式【POST调用方式】
/// <summary>/// 调用WEBAPI/// </summary>/// <param name="UserId"></param>/// <param name="UserName"></param>/// <param name="Token">可以验证</param>/// <param name="RequestName">方法名称</param>/// <param name="JsonData">JSON字符串或JSON数组</param>/// <returns></returns>public string GetWebApi(string UserId, string UserName, string Token, string RequestName, string JsonData){string Url = "http://192.168.1.2/api/控制器名/调用函数名";string s1 = "UserId=" + UserId+ "&UserName=" + UserName+ "&Token=" + Token+ "&RequestName=" + RequestName+ "&JsonData=" + JsonData+ "&ClientIP=''";string s2 = "";try{byte[] pds = Encoding.UTF8.GetBytes(s1);HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);request.Method = "POST";request.ContentType = "application/x-www-form-urlencoded;charset=utf-8";request.ContentLength = pds.Length;Stream writer = request.GetRequestStream();writer.Write(pds, 0, pds.Length);writer.Close();HttpWebResponse response = (HttpWebResponse)request.GetResponse();Stream s = response.GetResponseStream();StreamReader reader = new StreamReader(s);s2 = reader.ReadToEnd();s.Close();}catch (Exception e){s2 = e.Message;}return s2;}
调用如下:
string jkReturn = fu.GetWebApi(UsrId, UsrName, "Token", "functionName", json);/*调用返回 {"Success": 1,"Message": "成功 共2记录","Result": null}
这里的JSON自己按照规则拼凑就可以了
*/JObject jo = (JObject)JsonConvert.DeserializeObject(jkReturn);
bool success = (bool)jo["Success"];if (!success){Exception ex = new Exception("XXX信息有误:" + jkReturn);throw ex;}
- 返回执行结果
{ "Success": 1, "Message": "成功同步2条记录!", } |
- 返回结果说明
字段名 |
数据类型 |
允许空 |
注释 |
Success |
int |
是 |
0:异常 1:正常 |
Message |
string |
是 |
执行结果消息 |
当然大部分都还有一个Result字符对,也是可以的,那样更规范吧
至此C#调用WEBAPI接口已经完成,小伙伴可以试一试
C#调用WebAPI的HTTP服务相关推荐
- c#使用HttpClient调用WebApi
调用WebApi 可以利用HttpClient来进行Web Api的调用.由于WebA Api的调用本质上就是一次普通的发送请求与接收响应的过程, 所有HttpClient其实可以作为一般意义上发送H ...
- WebApi接口 - 如何在应用中调用webapi接口
» 简单做个webapi(查询+添加)接口 首先,我们需要有一个webapi接口项目,我这里以前面WebApi接口 - 响应输出xml和json文章的项目来构建本篇文章的测试用例:这里新建一个 DbD ...
- 调用webapi接口的实现
远程调用webapi接口技术文档 一.webapi接口 Webapi接口是一种使用json作为存放服务端数据的载体,将服务端数据生成为json,以json的形式存放,供外界调用,获取数据.外界用户需要 ...
- 解决js跨域调用WebApi的问题
解决js跨域调用WebApi的问题 参考文章: (1)解决js跨域调用WebApi的问题 (2)https://www.cnblogs.com/qubernet/p/6396295.html 备忘一下 ...
- 调用webapi 错误:使用 HTTP 谓词 POST 向虚拟目录发送了一个请求,而默认文档是不支持 GET 或 HEAD 以外的 HTTP 谓词的静态文件。的解决方案
调用webapi 错误:使用 HTTP 谓词 POST 向虚拟目录发送了一个请求,而默认文档是不支持 GET 或 HEAD 以外的 HTTP 谓词的静态文件.的解决方案 参考文章: (1)调用weba ...
- java 调用webapi json_java通过url调用web api并接收其返回的json
java通过url调用webapi并接收其返回的json数据,但现在结果总是:{"result":4,"data":{}}(未认证:),帮助文档如下:API使用 ...
- c#中WepAPI(post/get)控制器方法创建和httpclient调用webAPI实例
一:WebAPI创建 using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; ...
- 上几个WebAPI就算微服务架构?Too Young!
毋庸置疑,当下是微服务云原生的时代,这是最坏的时代,也是最好的时代!机遇和挑战并行,技术人之间的差距在逐渐拉到! 两极分化严重 早在2015年,微服务就已经被诸多大企业认可和推行,被称之为微服务架构元 ...
- 使用SoapUI调用安全WCF SOAP服务–第1部分,该服务
在这个由三部分组成的传奇中,我将演示如何使用SoapUI API工具来调用安全的SOAP服务. 首先,我将专注于创建服务,在接下来的文章中它将充当被测系统. 使用基本身份验证传输安全性机制维护对该服务 ...
最新文章
- 机器学习热码one hot python
- RabbitMQ学习总结(7)——Spring整合RabbitMQ实例
- 一站式开源测试平台:MeterSphere
- new Scanner(1.txt);读取不到文件中的数据
- tcp压测工具_【解决方案】性能压测及分析调优实践
- [Java基础]自定义注解 格式本质
- msdn画圆弧函数_精确之美——用TikZ画硬盘示意图
- 开发函数计算的正确姿势——借助 Ghostscript 将 PDF 转换成 JPG
- 【Java从入门到头秃专栏 6】语法篇(五) :多线程 线程池 可见、原子性 并发包 Lambda表达式
- 如何优化网站的响应时间
- 代码编辑框控件_某游戏控件遍历
- 学习笔记:App-V测试错误代码4505CD-1690150A-20000194
- 【硬件】推荐软件『软硬件的基准测试工具』
- Redis开发运维实践上线部署规划之内存规划
- 2018春招-今日头条笔试题-第四题(python)
- UE4 DataAsset 的使用
- symbian v3模拟器开启后自动关闭
- 大数据最佳实践-hbase
- 在Win10系统中防火墙如何设置IP白名单
- jsp393学生宿舍管理系统mysql
热门文章
- oracle+xquery函数,xquery
- 命令行测试网速_3个方便的命令行互联网速度测试
- 5亿美金砸向Momenta:上汽丰田博世奔驰齐入股,只因提供智能汽车加速度
- 鄱.阳.湖.近期SAR和光学卫星遥感数据汇总及共享
- was控制台及节点启动
- 【python】列出http://www.cnblogs.com/xiandedanteng中所有博文的标题
- 个人形象设计之衣橱管理
- python中NumPy的矢量运算
- linux企业实战-代理服务器
- leveldb 文档