原网站: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,基本的调用:

  1. var client = new RestClient();
  2. string endPoint = @"http:\\myRestService.com\api\";
  3. var client = new RestClient(endPoint);
  4. var json = client.MakeRequest();

2,如果你想带入参数

  1. var json = client.MakeRequest("?param=0");

3,使用最多的方式

  1. var client = new RestClient();
  2. client.EndPoint = @"http:\\myRestService.com\api\"; ;
  3. client.ContentType = "application/json";
  4. client.Method = HttpVerb.POST;
  5. client.PostData = "{postData: value}";
  6. var json = client.MakeRequest();

一般情况,MakeRequest返回的json格式的字符串(不排除有的接口开发商返回xml,html),我们可以把他转化为json对象,然后通过C#代码操控json对象,就会方便的很。当然jquery也很方便。

C#如何使用REST接口读写数据相关推荐

  1. 用VC++实现USB接口读写数据的程序

    使用一个GUIDguidHID_1查找并打开一个USB设备 extern "C" int PASCAL SearchUSBDevice() {HANDLE hUsb;int nCo ...

  2. 一文搞懂socket读写数据接口API

    对文件的读写操作read和write同样适用于socket.但是socket编程接口提供了专门的几个socket读写数据的接口. UDP数据读写函数 recvfrom(从另一个IP接收数据) ssiz ...

  3. ENVI IDL读写数据

    最近写程序不知道怎么写envi标准格式文件的头文件,在网上搜了半天,也没找到相关的信息.找到一个 ENVI_SETUP_HEAD函数,也不知怎么用.下面的内容可能以后用的着,先留着吧. 引用自:htt ...

  4. android ble蓝牙接收不到数据_Android蓝牙4.0 Ble读写数据详解 -2

    Android蓝牙4.0 Ble读写数据详解 -2 上一篇说了如何扫描与链接蓝牙 这篇文章讲讲与蓝牙的数据传输,与一些踩到的坑. 先介绍一款调试工具,专门调试Ble蓝牙的app.名字叫:nRF-Con ...

  5. A40I工控主板(SBC-X40I)USB接口读写测试

    SBC-X40I产品特性 采用Allwinner公司Cortex-A7四核A40i处理器,运行最高速度为1.2GHZ: 支持Mali-400MP2 GPU,支持OpenGL ES 2.0 / Open ...

  6. 关于iic协议和对AT24C02进行读写数据的理解和代码解读

    关于iic协议和对AT24C02进行读写数据的理解和代码解读 认识IIC协议 IIC协议软件模拟方法 管脚初始化 时序 AT24C02 简介 存储大小计算 工作方式 流程(代码) 认识IIC协议 本文 ...

  7. STM32利用FATFS文件系统给SD卡读写数据

    STM32利用FATFS文件系统给SD卡读写数据 注:FATFS文件系统官方网址(内含各种函数具体功能及参数配置): FATFS文件系统官方网址 1. 所需.c和.h文件 FATFS中的文件的作用如下 ...

  8. Hbase读写数据过程详解(hbase0.96版本之前与hbase0.96版本之后对比)

    @Author : Spinach | GHB @Link : http://blog.csdn.net/bocai8058 文章目录 HBase架构图 -ROOT-和.META.结构 -ROOT- ...

  9. springboot 接口返回数据时 net.sf.json.JSONNull[“empty“]) 异常

    springboot 接口返回数据时 net.sf.json.JSONNull["empty"]) 异常 参考文章: (1)springboot 接口返回数据时 net.sf.js ...

最新文章

  1. 一篇文章让你了解智能合约以及和区块链的关系
  2. MySQL性能调优 读写分离
  3. cisco路由器设置telnet口令的问题
  4. 典型的简单权限分配系统方法介绍
  5. java对csv格式的读写操作
  6. iOS学习笔记3 - 命名空间
  7. 云安全之虚拟机安全监控
  8. mysql neatbean_使用MySQL的NetBeans中的SQL语法错误
  9. foobar2000中文版官方下载【多功能的音频播放器】
  10. 电脑计算机未输出任何信号 键盘没亮,戴尔计算机不显示信号,为什么计算机屏幕不显示...
  11. flutter ios打包_Flutter 的Android 、iOS 打包
  12. 科技巨头们以 A 取名的时尚潮流
  13. 腾讯微博qq说说备份导出工具_腾讯微博停止运营,赶紧申请备份吧
  14. OpenGL之纹理过滤(Texture Filtering)、MipMap方法、纹理坐标
  15. VC++“内存资源不足,无法完成此操作”——解决的心路历程(User对象)
  16. java安装步骤(java安装步骤视频)
  17. c语言程序设计教程第二版李春葆,C语言程序设计教程.第2版
  18. 射影几何----证明抛物线有一个焦点且只有一个焦点
  19. 【C# 基础】— 解决 winForm 引用 Adobe PDF Reader控件不显示pdf 文件 问题
  20. Revit二次开发—参数的读取与写入

热门文章

  1. 车道线检测--End-to-end Lane Detection through Differentiable Least-Squares Fitting
  2. 对抗网络用于人脸转正--Beyond Face Rotation
  3. k8s免安装-使用kubectl部署Pod, Deployment, LoadBalancer
  4. GO语言教程4:defer(延迟语句)详解
  5. 构建弹性架构组件—ELB和ASG
  6. rpa操作excel_RPA的功能与技术剖析
  7. java 泛型解耦,T-MVP:泛型深度解耦下的MVP大瘦身
  8. @ImportResource-SpringBoot使用xml配置Bean
  9. php mysql sample,GitHub - BensonWuu/php-apache-mysql-sample
  10. php模拟post上传图片,php模拟post上传图片解决方法