iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >C#调用接口的方式有哪些
  • 905
分享到

C#调用接口的方式有哪些

2023-07-02 09:07:11 905人浏览 泡泡鱼
摘要

这篇“C#调用接口的方式有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#调用接口的方式有哪些”文章吧。在用C#调用接

这篇“C#调用接口的方式有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#调用接口的方式有哪些”文章吧。

在用C#调用接口的时候,遇到需要通过调用登录接口才能调用其他的接口,因为在其他的接口需要在登录的状态下保存Cookie值才能有权限调用,所以首先需要通过调用登录接口来保存cookie值,再进行其他接口的调用

1.通过Get方式

        #region get方式        public string HttpGet(string url)        {            Encoding encoding = Encoding.UTF8;            HttpWEBRequest request = (HttpWebRequest)WebRequest.Create(url);            request.Method = "GET";            request.ContentType = "application/JSON";            request.Headers["Accept-Encoding"] = "gzip,deflase";            request.AutomaticDecompression = DecompressionMethods.GZip;            HttpWebResponse response = (HttpWebResponse)request.GetResponse();            // HttpCookie cookies = new HttpCookie("admin");  //如果有需要通过登录实现保存cookie值的话可以加一部分            // cookies.Value = Convert.ToString(response.Headers["Set-Cookie"]); // 通过响应请求读取带cookie的http数据            // cookies.Expires = DateTime.Now.ADDDays(1);            //  HttpContext.Current.Response.Cookies.Add(cookies);            using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))            {                return reader.ReadToEnd();            }        }        #endregion

但是并不是所有的get请求都需要添加这个heard的内容,有些加了这个可能出现乱码的情况,所以不要设置Accept-Encoding的Header

此处之所以加此header,是因为看到网页分析工具中所得到的浏览器浏览该网页,对应的http的header的内容中,就是这样设置的。

所以,代码中,也是模拟浏览器去访问网页,就设置了对应的Accept-Encoding为gzip,deflate了

普通浏览器访问网页,之所以添加:"Accept-Encoding" = "gzip,deflate"

那是因为,浏览器对于从服务器中返回的对应的gzip压缩的网页,会自动解压缩,所以,其request的时候,添加对应的头,表明自己接受压缩后的数据。

同时添加了 request.AutomaticDecompression = DecompressionMethods.GZip;这一句,便可以获得正确的数据。

如果你获取网页内容太大的话,那么还是可以用这个办法的,这样就可以让HttpWebRequest自动帮你实现对应的解压缩了,可以减少数据数据传输量,节省时间,提高效率。

2.通过post方式

public string HttpPost2(string url, string body){   //把用户传过来的数据转成“UTF-8”的字节流    Encoding encoding = Encoding.UTF8;    //先根据用户请求的uri构造请求地址    //创建Web访问对象    HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url);    request.Method = "POST";    // request.Accept = "application/json";   request.ContentType = "application/json; charset=UTF-8";   request.Headers["Accept-Encoding"] = "gzip, deflate";   request.AutomaticDecompression = DecompressionMethods.GZip;   //HttpCookie Cookie = System.Web.HttpContext.Current.Request.Cookies["admin"];  //若是需要登录过后再能访问获取url的数据,需要在请求头中设置cookie值   //if (Cookie != null)   //    request.Headers.Add("Cookie", Cookie.Value.ToString());   byte[] buffer = encoding.GetBytes(body);   request.ContentLength = buffer.Length;   request.GetRequestStream().Write(buffer, 0, buffer.Length);   //通过Web访问对象获取响应内容   HttpWebResponse response = (HttpWebResponse) request.GetResponse();   //通过响应内容流创建StreamReader对象,因为StreamReader更高级更快   using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))   {    return reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾   } }

3.通过put请求

        #region Put请求        public string Put(string data, string uri)        {//创建Web访问对象            HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(uri);            //把用户传过来的数据转成“UTF-8”的字节流            byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(data);            Request.Method = "PUT";            Request.ContentLength = buf.Length;            Request.ContentType = "application/json";            Request.MaximumAutomaticRedirections = 1;            Request.AllowAutoRedirect = true;            //发送请求            Stream stream = Request.GetRequestStream();            stream.Write(buf, 0, buf.Length);            stream.Close();            //获取接口返回值            //通过Web访问对象获取响应内容            HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();            //通过响应内容流创建StreamReader对象,因为StreamReader更高级更快            StreamReader reader = new StreamReader(Response.GetResponseStream(), Encoding.UTF8);            //string returnXml = HttpUtility.UrlDecode(reader.ReadToEnd());//如果有编码问题就用这个方法            string returnXml = reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾            reader.Close();            Response.Close();            return returnXml;        }                   #endregion

4.通过Delete请求

        #region Delete请求        public string Delete(string data, string uri)        {            //创建Web访问对象            HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(uri);            //把用户传过来的数据转成“UTF-8”的字节流            byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(data);            Request.Method = "DELETE";            Request.ContentLength = buf.Length;            Request.ContentType = "application/json";            Request.MaximumAutomaticRedirections = 1;            Request.AllowAutoRedirect = true;            //发送请求            Stream stream = Request.GetRequestStream();            stream.Write(buf, 0, buf.Length);            stream.Close();            //获取接口返回值            //通过Web访问对象获取响应内容            HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();            //通过响应内容流创建StreamReader对象,因为StreamReader更高级更快            StreamReader reader = new StreamReader(Response.GetResponseStream(), Encoding.UTF8);            //string returnXml = HttpUtility.UrlDecode(reader.ReadToEnd());//如果有编码问题就用这个方法            string returnXml = reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾            reader.Close();            Response.Close();            return returnXml;        }       #endregion

不同的场景需求,使用不同的方式,应用在不同的场景 。

通过这几种组合方式 ,可以调用http接口,完成调用和测试

以上就是关于“C#调用接口的方式有哪些”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: C#调用接口的方式有哪些

本文链接: https://www.lsjlt.com/news/340937.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#调用接口的方式有哪些
    这篇“C#调用接口的方式有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#调用接口的方式有哪些”文章吧。在用C#调用接...
    99+
    2023-07-02
  • webservice接口调用方式有哪些
    WebService接口调用方式有以下几种:1. SOAP调用方式:使用Simple Object Access Protocol ...
    99+
    2023-09-21
    webservice
  • java远程调用接口的方式有哪些
    Java远程调用接口的方式有以下几种:1. Java RMI(Remote Method Invocation): Java RMI...
    99+
    2023-10-21
    java
  • SpringBoot调用外部接口的方式有哪些
    这篇文章主要介绍了SpringBoot调用外部接口的方式有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot调用外部接口的方式有哪些文章都会有所收获,下面我们一起来看看吧。1、简介Sprin...
    99+
    2023-07-05
  • java接口调用的方法有哪些
    Java接口调用的方法有以下几种:1. 实现接口:通过实现接口的类来调用接口中定义的方法。实现接口的类必须实现接口中所有的方法。2....
    99+
    2023-08-08
    java
  • Java调用wsdl接口的方法有哪些
    本篇内容介绍了“Java调用wsdl接口的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、AXIS调用远程WebService,...
    99+
    2023-07-05
  • java调用webservice接口的方法有哪些
    Java调用WebService接口的方法主要有以下几种:1. 使用JAX-WS(Java API for XML Web Serv...
    99+
    2023-08-15
    java webservice
  • php调用webservice接口的方法有哪些
    PHP调用Web Service接口的方法有以下几种:1. 使用PHP内置的SoapClient类:SoapClient类是PHP提...
    99+
    2023-08-08
    php webservice
  • c++函数调用的方式有哪些
    C++函数可以通过以下方式调用:1. 直接调用:使用函数名、参数列表和分号来调用函数。2. 函数指针调用:将函数的地址保存在指针变量...
    99+
    2023-08-18
    c++
  • C++中有哪些函数调用的方式
    这篇文章将为大家详细讲解有关C++中有哪些函数调用的方式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。stdcall很多时候被称为pascal调用约定,因为pascal是早期很常见的一种教学...
    99+
    2023-06-17
  • C#调用接口的四种方式介绍
    在用C#调用接口的时候,遇到需要通过调用登录接口才能调用其他的接口,因为在其他的接口需要在登录的状态下保存Cookie值才能有权限调用,所以首先需要通过调用登录接口来保存cookie...
    99+
    2024-04-02
  • java请求接口的方式有哪些
    Java请求接口的方式有以下几种:1. 使用HttpURLConnection:使用Java标准库中的HttpURLConnecti...
    99+
    2023-10-25
    java
  • spring接口注入的方式有哪些
    Spring接口注入的方式有以下几种: 构造器注入:通过构造函数将依赖注入到目标对象中。 属性注入:通过属性的setter方...
    99+
    2023-10-25
    spring
  • java接口的实现方式有哪些
    java中实现接口的方式有:1.使用implements关键字实现;2.使用匿名内部类实现;3.使用interface实现;java中实现接口的方式有以下几种使用implements关键字实现public interface Com{}pu...
    99+
    2024-04-02
  • dubbo调用的方式有哪些
    Dubbo调用方式有以下几种: 同步调用:发送请求后,等待服务提供者返回结果后再返回。 异步调用:发送请求后,不等待服务提供...
    99+
    2023-10-22
    dubbo
  • webservice调用的方式有哪些
    有以下几种常见的方式可以调用webservice: SOAP(Simple Object Access Protocol):基于...
    99+
    2024-02-29
    webservice
  • css调用方式有哪些
    这篇文章主要为大家展示了“css调用方式有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css调用方式有哪些”这篇文章吧。什么是css层叠样式表:为网页标签...
    99+
    2024-04-02
  • Java中定义接口的方式有哪些
    在Java中定义接口的方式有以下几种:1. 使用关键字`interface`来定义接口,接口可以包含方法的声明(没有实现),常量的声...
    99+
    2023-09-23
    java
  • Spring中接口注入的方式有哪些
    这篇文章主要讲解了“Spring中接口注入的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring中接口注入的方式有哪些”吧!Spring 框架是一个分层架构,由 7 个定义良...
    99+
    2023-06-17
  • jmeter实现接口关联的方式有哪些
    这篇文章主要讲解了“jmeter实现接口关联的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jmeter实现接口关联的方式有哪些”吧!一、前言在开展接口测试或者是接口面试的过程中,...
    99+
    2023-06-21
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作