我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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#调用接口的方式有哪些”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

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

下载Word文档

猜你喜欢

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

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

webservice接口调用方式有哪些

WebService接口调用方式有以下几种:1. SOAP调用方式:使用Simple Object Access Protocol (SOAP)作为通信协议,通过发送XML格式的消息请求和接收响应来进行调用。2. RESTful调用方式:使
2023-09-21

SpringBoot调用外部接口的方式有哪些

这篇文章主要介绍了SpringBoot调用外部接口的方式有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot调用外部接口的方式有哪些文章都会有所收获,下面我们一起来看看吧。1、简介Sprin
2023-07-05

java远程调用接口的方式有哪些

Java远程调用接口的方式有以下几种:1. Java RMI(Remote Method Invocation): Java RMI是一种Java平台上的远程过程调用协议,它允许一个Java应用程序通过网络调用远程对象的方法。Java RM
2023-10-21

java接口调用的方法有哪些

Java接口调用的方法有以下几种:1. 实现接口:通过实现接口的类来调用接口中定义的方法。实现接口的类必须实现接口中所有的方法。2. 匿名类:可以在需要的地方使用匿名类来调用接口中的方法。匿名类可以在定义的同时实现接口并调用接口中的方法。3
2023-08-08

c++函数调用的方式有哪些

C++函数可以通过以下方式调用:1. 直接调用:使用函数名、参数列表和分号来调用函数。2. 函数指针调用:将函数的地址保存在指针变量中,然后通过指针变量调用函数。3. 函数引用调用:将函数的引用作为参数传递给另一个函数,并通过引用调用函数。
2023-08-18

Java调用wsdl接口的方法有哪些

本篇内容介绍了“Java调用wsdl接口的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、AXIS调用远程WebService,
2023-07-05

java调用webservice接口的方法有哪些

Java调用WebService接口的方法主要有以下几种:1. 使用JAX-WS(Java API for XML Web Services):JAX-WS是Java EE的一部分,它提供了一种简单的方式来创建和调用Web服务。可以使用ws
2023-08-15

php调用webservice接口的方法有哪些

PHP调用Web Service接口的方法有以下几种:1. 使用PHP内置的SoapClient类:SoapClient类是PHP提供的内置类,可以用于调用基于SOAP协议的Web Service接口。通过创建SoapClient对象,设置
2023-08-08

C++中有哪些函数调用的方式

这篇文章将为大家详细讲解有关C++中有哪些函数调用的方式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。stdcall很多时候被称为pascal调用约定,因为pascal是早期很常见的一种教学
2023-06-17

spring接口注入的方式有哪些

Spring接口注入的方式有以下几种:构造器注入:通过构造函数将依赖注入到目标对象中。属性注入:通过属性的setter方法将依赖注入到目标对象中。接口注入:通过接口的实现类将依赖注入到目标对象中。注解注入:通过使用Spring提供的注解(例
2023-10-25

java请求接口的方式有哪些

Java请求接口的方式有以下几种:1. 使用HttpURLConnection:使用Java标准库中的HttpURLConnection类来发送HTTP请求并获取响应。2. 使用Apache HttpClient:Apache HttpCl
2023-10-25

webservice调用的方式有哪些

有以下几种常见的方式可以调用webservice:SOAP(Simple Object Access Protocol):基于XML的协议,使用SOAP消息进行通信。SOAP请求和响应消息都是XML格式的,可以在HTTP、SMTP等协议上传
webservice调用的方式有哪些
2024-02-29

dubbo调用的方式有哪些

Dubbo调用方式有以下几种:同步调用:发送请求后,等待服务提供者返回结果后再返回。异步调用:发送请求后,不等待服务提供者返回结果,而是通过回调函数处理结果。单向调用:发送请求后,不等待服务提供者返回结果,也不处理结果。广播调用:向多个服务
2023-10-22

Spring中接口注入的方式有哪些

这篇文章主要讲解了“Spring中接口注入的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring中接口注入的方式有哪些”吧!Spring 框架是一个分层架构,由 7 个定义良
2023-06-17

Java中定义接口的方式有哪些

在Java中定义接口的方式有以下几种:1. 使用关键字`interface`来定义接口,接口可以包含方法的声明(没有实现),常量的声明和默认方法的实现。```javapublic interface MyInterface {int SOM
2023-09-23

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录