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: ...
随机推荐
- SQL Server 2005下载安装
好久没弄过数据库了,打算重温一下,由于是新买的笔记本,所以今天下载安装了一下哈. 官网 http://www.microsoft.com/zh-cn/download/default.aspx 在官网 ...
- VS C# 快捷键
解决VS2010中工具箱的的不见的问题:按快捷键Ctrl+Alt+X 全屏:Shift+Alt+Enter注释选定内容:Ctrl+E+C/Crtr+E+U代码格式化:ctrl+E+F ======== ...
- IPv6 neighbor discovery
IPv6 neighbor discovery By stretch | Thursday, August 28, 2008 at 5:03 a.m. UTC Neighbor Discovery P ...
- HDU1016(bfs)
import java.util.Scanner;public class Main1016 { public static void main(String[] args) { Scanner ci ...
- Java实现简单选择排序
package select; import java.util.Scanner; /*采用最简单的选择方式:从头到尾扫描序列找出最小的记录和第一个记录交换,接着在剩下的记录中继续这种选择和交换,最终 ...
- python+django+wusgi+nginx安装部署
基于centos搭建nginx+uwsgi运行django环境 环境: CentOS 7 nginx/1.9.12 Python 2.7.5 一:安装依赖包5 yum install zlib-dev ...
- 【转】企业级Java应用最重要的4个性能指标
应用性能管理(APM)是一种即时监控以实现对应用程序性能管理和故障管理的系统化解决方案.目前主要指对企业的关键业务应用进行监测.优化,最终达到提高企业应用的可靠性和质量,保证用户得到良好的服务,降低I ...
- .net+easyui--combobox
一:预定义结构的 select 元素创建组合框(combobox)值固定写死 <select class="easyui-combobox" name="state ...
- 解读Spring Ioc容器设计图
在Spring Ioc容器的设计中,有俩个主要的容器系列:一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器最基本的功能:另外一个是ApplicationContext应用上下 ...
- MVC小系列(二十)【给Action提供HttpStatusCodeResult】
主要用到: HttpStatusCodeResult 和HttpStatusCode 的http返回状态 比如: /// <summary> /// 使用异步模式 /// </sum ...