C# 中经常用到的HTTP请求类,已封装get,post,delete,put
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Net;
- using System.IO;
- using System.Web;
- namespace WebAPIClientDemo
- {
- public class RestClient
- {
- private string BaseUri;
- public RestClient(string baseUri)
- {
- this.BaseUri = baseUri;
- }
- #region Delete方式
- public string Delete(string data, string uri)
- {
- return CommonHttpRequest(data, uri, "DELETE");
- }
- public string Delete(string uri)
- {
- //Web访问对象64
- string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri);
- HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);
- myRequest.Method = "DELETE";
- // 获得接口返回值68
- HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
- StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
- //string ReturnXml = HttpUtility.UrlDecode(reader.ReadToEnd());
- string ReturnXml = reader.ReadToEnd();
- reader.Close();
- myResponse.Close();
- return ReturnXml;
- }
- #endregion
- #region Put方式
- public string Put(string data, string uri)
- {
- return CommonHttpRequest(data, uri, "PUT");
- }
- #endregion
- #region POST方式实现
- public string Post(string data, string uri)
- {
- return CommonHttpRequest(data,uri,"POST");
- }
- public string CommonHttpRequest(string data, string uri,string type)
- {
- //Web访问对象,构造请求的url地址
- string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri);
- //构造http请求的对象
- HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);
- //转成网络流
- byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(data);
- //设置
- myRequest.Method = type;
- myRequest.ContentLength = buf.Length;
- myRequest.ContentType = "application/json";
- myRequest.MaximumAutomaticRedirections = ;
- myRequest.AllowAutoRedirect = true;
- // 发送请求
- Stream newStream = myRequest.GetRequestStream();
- newStream.Write(buf, , buf.Length);
- newStream.Close();
- // 获得接口返回值
- HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
- StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
- string ReturnXml = reader.ReadToEnd();
- reader.Close();
- myResponse.Close();
- return ReturnXml;
- }
- #endregion
- #region GET方式实现
- public string Get(string uri)
- {
- //Web访问对象64
- string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri);
- //构造一个Web请求的对象
- HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);
- // 获得接口返回值68
- //获取web请求的响应的内容
- HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
- //通过响应流构造一个StreamReader
- StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
- //string ReturnXml = HttpUtility.UrlDecode(reader.ReadToEnd());
- string ReturnXml = reader.ReadToEnd();
- reader.Close();
- myResponse.Close();
- return ReturnXml;
- }
- #endregion
- }
- }
- //调用代码demo
- string serviceUrl = "http://localhost:44540/";
- RestClient client = new RestClient(serviceUrl);
- string data = @"{""UserName"":""1111"",""Age"":123,""Id"":133}";
- string uriPost = "api/values/3";
- string retPost = client.Put(data, uriPost);
C# 中经常用到的HTTP请求类,已封装get,post,delete,put的更多相关文章
- jQuery中ajax的4种常用请求方式
jQuery中ajax的4种常用请求方式: 1.$.ajax()返回其创建的 XMLHttpRequest 对象. $.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数 ...
- struts中的请求数据自动封装
Struts 2框架会将表单的参数以同名的方式设置给对应Action的属性中.该工作主要是由Parameters拦截器做的.而该拦截器中已经自动的实现了String到基本数据类型之间的转换工作.在st ...
- js中ajax如何解决跨域请求
js中ajax如何解决跨域请求,在讲这个问题之前先解释几个名词 1.跨域请求 所有的浏览器都是同源策略,这个策略能保证页面脚本资源和cookie安全 ,浏览器隔离了来自不同源的请求,防上跨域不安全的操 ...
- iOS实现OAuth2.0中刷新access token并重新请求数据操作
一.简要概述 OAuth2.0是OAuth协议的下一版本,时常用于移动客户端的开发,是一种比较安全的机制.在OAuth 2.0中,server将发行一个短有效期的access token和长生命期的r ...
- (转)通过在 Page 指令或 配置节中设置 validateRequest=false 可以禁用请求验证
通过在 Page 指令或 配置节中设置 validateRequest=false 可以禁用请求验证 说明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止.该值可能指示危及应用 ...
- EBS 开发中如何动态启用和禁止请求(Current Request)的参数
EBS 开发中如何动态启用和禁止请求(Current Request)的参数 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 我们可以使用依赖 ...
- Spring拦截器中通过request获取到该请求对应Controller中的method对象
背景:项目使用Spring 3.1.0.RELEASE,从dao到Controller层全部是基于注解配置.我的需求是想在自定义的Spring拦截器中通过request获取到该请求对应于Control ...
- jquery ajax 请求中多出现一次OPTIONS请求及其解决办法
http://www.tangshuang.net/2271.html 在上一篇<服务端php解决jquery ajax跨域请求restful api问题及实践>中,我简单介绍了如何通过服 ...
- Springboot中使用AOP统一处理Web请求日志
title: Springboot中使用AOP统一处理Web请求日志 date: 2017-04-26 16:30:48 tags: ['Spring Boot','AOP'] categories: ...
随机推荐
- iOS开发中一些常用的方法
1.压缩图片 #pragma mark 处理图片 - (void)useImage:(UIImage *)image { NSLog(@"with-----%f heught-----%f& ...
- 机器学习算法-K-means聚类
引文: k均值算法是一种聚类算法.所谓聚类.他是一种无监督学习,将类似的对象归到同一个蔟中.蔟内的对象越类似,聚类的效果越好. 聚类和分类最大的不同在于.分类的目标事先已知.而聚类则不一样. 由于其产 ...
- 【转】cocos2d-x获取系统时间——2013-08-25 10
欢迎转载,本帖地址:http://blog.csdn.net/jinjian2009/article/details/9449585 之前使用过cocos2d-x获取系统时间,毫秒级的 long ge ...
- j2ee学习笔记 javascript 学习
JavaScript 组成: ECMAScript + BOM + DOM Window对象是JS中的顶层对象 ECMAScript: 规定了一些语法,变量,for循环等等结构 BOM: Browse ...
- 关于ellipsize属性使用的一些细节
ellipsize主要是处理当文字长度超过TextView可显示的长度的时候,系统的处理方式,ellipsize主要有以下几种值: android:ellipsize="start" ...
- Java IO学习笔记
Java流的分类,一般可按以下方式分: 按方向分,分为输入流,输出流. 按类型分,分为字节流和字符流. 2.1字节流是通过字节来读取数据 2.2字符流是通过字符来读取数据 按操作方式分,分为节点流和过 ...
- web项目设计与开发——DBHelper
学习web项目设计与开发主要是在上学期web程序开发的基础上添上了思想和更深的理解. 在学习之前,我们需要下载好相关的软件——MyEclipse以及配置文件JDK.tomcat.再添加除MyEclip ...
- 友元(friend)--初学篇
友元:友好的元子,,,,呵呵呵 一般一个类中有私有(private),公有(public),和保护(protected)三种类型成员,而只有public成员才可以在类外被随便访问,protected只 ...
- cobbler部署
1.cobbler介绍 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),使用简单的 ...
- 新增的html5中js获取方法
一.querySelector 获取的选择器与jquery的选择器相同