C#如何使用REST接口读写数据
原网站:http://www.codeproject.com/Tips/497123/How-to-make-REST-requests-with-Csharp
一个类,我们拷贝下来直接调用就行:
using System;
using System.IO;
using System.Net;
using System.Text;public enum HttpVerb
{GET, //method 常用的就这几样,当然你也可以添加其他的 get:获取 post:修改 put:写入 delete:删除POST,PUT,DELETE
}namespace HttpUtils
{public class RestClient{public string EndPoint { get; set; } //请求的url地址 eg: http://215.23.12.45:8080/order/order_id=1&isdel=0public HttpVerb Method { get; set; } //请求的方法public string ContentType { get; set; } //格式类型:我用的是application/json,text/xml具体使用什么,看需求吧public string PostData { get; set; } //传送的数据,当然了我使用的是json字符串public RestClient(){EndPoint = "";Method = HttpVerb.GET;ContentType = "application/json";PostData = "";}public RestClient(string endpoint){EndPoint = endpoint;Method = HttpVerb.GET;ContentType = "application/json";PostData = "";}public RestClient(string endpoint, HttpVerb method){EndPoint = endpoint;Method = method;ContentType = "application/json";PostData = "";}public RestClient(string endpoint, HttpVerb method, string postData){EndPoint = endpoint;Method = method;ContentType = "application/json";PostData = postData;}public string MakeRequest(){return MakeRequest("");}public string MakeRequest(string parameters){var request = (HttpWebRequest)WebRequest.Create(EndPoint + parameters);request.Method = Method.ToString();request.ContentLength = 0;request.ContentType = ContentType;if (!string.IsNullOrEmpty(PostData) && Method == HttpVerb.POST)//如果传送的数据不为空,并且方法是post{var encoding = new UTF8Encoding();var bytes = Encoding.GetEncoding("iso-8859-1").GetBytes(PostData);//编码方式按自己需求进行更改,我在项目中使用的是UTF-8request.ContentLength = bytes.Length;using (var writeStream = request.GetRequestStream()){writeStream.Write(bytes, 0, bytes.Length);}}if (!string.IsNullOrEmpty(PostData) && Method == HttpVerb.PUT)//如果传送的数据不为空,并且方法是put{var encoding = new UTF8Encoding();var bytes = Encoding.GetEncoding("iso-8859-1").GetBytes(PostData);//编码方式按自己需求进行更改,我在项目中使用的是UTF-8request.ContentLength = bytes.Length;using (var writeStream = request.GetRequestStream()){writeStream.Write(bytes, 0, bytes.Length);}}using (var response = (HttpWebResponse)request.GetResponse()){var responseValue = string.Empty;if (response.StatusCode != HttpStatusCode.OK){var message = String.Format("Request failed. Received HTTP {0}", response.StatusCode);throw new ApplicationException(message);}// grab the responseusing (var responseStream = response.GetResponseStream()){if (responseStream != null)using (var reader = new StreamReader(responseStream)){responseValue = reader.ReadToEnd();}}return responseValue;}}} // class}
以上是类,我演示一下使用的方法:
1,基本的调用:
- var client = new RestClient();
- string endPoint = @"http:\\myRestService.com\api\";
- var client = new RestClient(endPoint);
- var json = client.MakeRequest();
2,如果你想带入参数
- var json = client.MakeRequest("?param=0");
3,使用最多的方式
- var client = new RestClient();
- client.EndPoint = @"http:\\myRestService.com\api\"; ;
- client.ContentType = "application/json";
- client.Method = HttpVerb.POST;
- client.PostData = "{postData: value}";
- var json = client.MakeRequest();
一般情况,MakeRequest返回的json格式的字符串(不排除有的接口开发商返回xml,html),我们可以把他转化为json对象,然后通过C#代码操控json对象,就会方便的很。当然jquery也很方便。
C#如何使用REST接口读写数据相关推荐
- 用VC++实现USB接口读写数据的程序
使用一个GUIDguidHID_1查找并打开一个USB设备 extern "C" int PASCAL SearchUSBDevice() {HANDLE hUsb;int nCo ...
- 一文搞懂socket读写数据接口API
对文件的读写操作read和write同样适用于socket.但是socket编程接口提供了专门的几个socket读写数据的接口. UDP数据读写函数 recvfrom(从另一个IP接收数据) ssiz ...
- ENVI IDL读写数据
最近写程序不知道怎么写envi标准格式文件的头文件,在网上搜了半天,也没找到相关的信息.找到一个 ENVI_SETUP_HEAD函数,也不知怎么用.下面的内容可能以后用的着,先留着吧. 引用自:htt ...
- android ble蓝牙接收不到数据_Android蓝牙4.0 Ble读写数据详解 -2
Android蓝牙4.0 Ble读写数据详解 -2 上一篇说了如何扫描与链接蓝牙 这篇文章讲讲与蓝牙的数据传输,与一些踩到的坑. 先介绍一款调试工具,专门调试Ble蓝牙的app.名字叫:nRF-Con ...
- A40I工控主板(SBC-X40I)USB接口读写测试
SBC-X40I产品特性 采用Allwinner公司Cortex-A7四核A40i处理器,运行最高速度为1.2GHZ: 支持Mali-400MP2 GPU,支持OpenGL ES 2.0 / Open ...
- 关于iic协议和对AT24C02进行读写数据的理解和代码解读
关于iic协议和对AT24C02进行读写数据的理解和代码解读 认识IIC协议 IIC协议软件模拟方法 管脚初始化 时序 AT24C02 简介 存储大小计算 工作方式 流程(代码) 认识IIC协议 本文 ...
- STM32利用FATFS文件系统给SD卡读写数据
STM32利用FATFS文件系统给SD卡读写数据 注:FATFS文件系统官方网址(内含各种函数具体功能及参数配置): FATFS文件系统官方网址 1. 所需.c和.h文件 FATFS中的文件的作用如下 ...
- Hbase读写数据过程详解(hbase0.96版本之前与hbase0.96版本之后对比)
@Author : Spinach | GHB @Link : http://blog.csdn.net/bocai8058 文章目录 HBase架构图 -ROOT-和.META.结构 -ROOT- ...
- springboot 接口返回数据时 net.sf.json.JSONNull[“empty“]) 异常
springboot 接口返回数据时 net.sf.json.JSONNull["empty"]) 异常 参考文章: (1)springboot 接口返回数据时 net.sf.js ...
最新文章
- 一篇文章让你了解智能合约以及和区块链的关系
- MySQL性能调优 读写分离
- cisco路由器设置telnet口令的问题
- 典型的简单权限分配系统方法介绍
- java对csv格式的读写操作
- iOS学习笔记3 - 命名空间
- 云安全之虚拟机安全监控
- mysql neatbean_使用MySQL的NetBeans中的SQL语法错误
- foobar2000中文版官方下载【多功能的音频播放器】
- 电脑计算机未输出任何信号 键盘没亮,戴尔计算机不显示信号,为什么计算机屏幕不显示...
- flutter ios打包_Flutter 的Android 、iOS 打包
- 科技巨头们以 A 取名的时尚潮流
- 腾讯微博qq说说备份导出工具_腾讯微博停止运营,赶紧申请备份吧
- OpenGL之纹理过滤(Texture Filtering)、MipMap方法、纹理坐标
- VC++“内存资源不足,无法完成此操作”——解决的心路历程(User对象)
- java安装步骤(java安装步骤视频)
- c语言程序设计教程第二版李春葆,C语言程序设计教程.第2版
- 射影几何----证明抛物线有一个焦点且只有一个焦点
- 【C# 基础】— 解决 winForm 引用 Adobe PDF Reader控件不显示pdf 文件 问题
- Revit二次开发—参数的读取与写入
热门文章
- 车道线检测--End-to-end Lane Detection through Differentiable Least-Squares Fitting
- 对抗网络用于人脸转正--Beyond Face Rotation
- k8s免安装-使用kubectl部署Pod, Deployment, LoadBalancer
- GO语言教程4:defer(延迟语句)详解
- 构建弹性架构组件—ELB和ASG
- rpa操作excel_RPA的功能与技术剖析
- java 泛型解耦,T-MVP:泛型深度解耦下的MVP大瘦身
- @ImportResource-SpringBoot使用xml配置Bean
- php mysql sample,GitHub - BensonWuu/php-apache-mysql-sample
- php模拟post上传图片,php模拟post上传图片解决方法