首页 > 编程语言 >C# 发起网络请求

C# 发起网络请求

时间:2023-04-14 12:23:53浏览次数:39  
标签:请求 发起 C# Dispose request response stream StreamReader string

 public class CWebRequest
    {
        //从URL读取内容
        //流程:创建网络请求对象→获取响应→获取响应流→从响应留读取字符串
        //流程:WebRequest→WebResponse→Stream→StreamReader→ReadToEnd
        public string GetResponseContent(string url)
        {
            WebRequest request = WebRequest.Create(url);
            WebResponse response = request.GetResponse();
            Stream stream = response.GetResponseStream();
            StreamReader reader = new StreamReader(stream, Encoding.UTF8);
            string res = reader.ReadToEnd();
            reader.Dispose();
            stream.Dispose();
            return res;
        }

        public string GetHttpResponseContent(string url)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.ContentType = "text/html;charset=UTF-8";
            request.UserAgent = null;
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream stream = response.GetResponseStream();
            StreamReader reader = new StreamReader(stream, Encoding.UTF8);
            string content = reader.ReadToEnd();
            reader.Dispose();
            stream.Dispose();
            return content;

        }
        //发起POST请求,并获取返回字符串
        //流程:创建请求→配置请求→获取请求流→Json写入请求流→获取响应→获取响应流→构建流读取器→读取相应字符串
        //流程:HttpWebRequest→(Method/ContentType)→GetRequestStream→Write→GetResponse→GetResponseStream→StreamReader→ReadToEnd
        //json转字节数组并获取长度
        public string PostJson(string url, string json)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "POST";
            request.ContentType = "application/json;charset=UTF-8";
            byte[] bytes = Encoding.UTF8.GetBytes(json);
            int len = bytes.Length;
            Stream requestStream = request.GetRequestStream();
            requestStream.Write(bytes, 0, len);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream responseStream = response.GetResponseStream();
            StreamReader responseReader = new StreamReader(responseStream, Encoding.UTF8);
            string responseContent = responseReader.ReadToEnd();
            responseReader.Dispose();
            responseStream.Dispose();
            requestStream.Dispose();
            return responseContent;
        }
    }

标签:请求,发起,C#,Dispose,request,response,stream,StreamReader,string
From: https://www.cnblogs.com/zhangdezhang/p/17317923.html

相关文章

  • C++的引用变量作为函数参数
    一、问题引入在C++的中新增一个特性:按引用传递变量,虽然与按传递变量的地址可以实现相同的结果,但引用有其独特的地方。引用传递:引用经常被用作函数参数,使得函数中的变量名成为调用程序中的变量的别名。通过引用变量用作参数,函数将使用原始数据,而不是其副本。二、解决过程举......
  • MFC-GetWindowRect获取指定窗口或控件的边框矩形的尺寸
     HWNDhDlgWnd=::FindWindow(_T("#32770"),_T("测试窗口"));if(hDlgWnd){::ShowWindow(hDlgWnd,SW_NORMAL);::SetForegroundWindow(hDlgWnd);HWNDhBtn=::GetDlgItem(hDlgWnd,0x3E8);CRectmRect;......
  • Access denied for user 'root'@'x.x.x.x' (using password: YES)请求的ip跟报错显示
      这里请求的实际上报这一条错误是说明已经请求到了目标服务器的,mysql中以‘root’@‘x.x.x.x’这种格式表示的ip其实是我们当前的ip而非目标ip,这里报错是因为我密码输错了,所以报了错......
  • csharp上传大型视频文件到服务器,解决方案
    ​前言一、SpringMVC简介1.1、SpringMVC引言为了使Spring有可插入的MVC架构,SpringFrameWork在Spring基础上开发SpringMVC框架,从而在使用Spring进行WEB开发时可以选择使用Spring的SpringMVC框架作为web开发的控制器框架。 spring知识图谱分享:1.2、SpringMVC......
  • blockchain | 交叉编译armv8的pbc库
    blockchain|交叉编译armv8的pbc库这块儿网上是没啥具体的资料的,因为要测试pbc库在安卓上的性能,但是网上pbc的支持只到armv7,就只能自己编译了。大致流程:下载gmp库源码下载pbc库源码编译gmp编译pbc编译测试程序这里使用的是aarch64-linux-gnu-g++andaarch64-linux-gnu......
  • nginx-authenticate.conf Nginx配置 新增长链接支持代理
    nginx-authenticate.confNginx配置新增长链接支持代理新增代码proxy_set_headerConnection"";proxy_http_version1.1;proxy_bufferingoff;proxy_cacheoff;文件代码server{listen8888;server_namelocalhost;......
  • C# 技术文档工具类
    C#类转换为SQL表SQL表转换为C#类C#类转WPFModelC#实现实体类和XML相互转换https://blog.csdn.net/u011555996/article/details/112123458C#将object对象转换为实体对象https://www.shuzhiduo.com/A/ZOJPOxAozv/动态对象转换为实体对象https://www.csframework.com/archi......
  • 在.NET Core 6.0中,你可以使用自定义 Middleware 来限制 Swagger/index.html 的访问,当
    创建一个自定义Middleware类,例如SwaggerNotFoundMiddleware:publicclassSwaggerNotFoundMiddleware{privatereadonlyRequestDelegate_next;publicSwaggerNotFoundMiddleware(RequestDelegatenext){_next=next;}publicasyncT......
  • org.apache.coyote.tomcat5.CoyoteResponseFacade.sendRedirec
    org.apache.coyote.tomcat5.CoyoteResponseFacade.sendRedirect(CoyoteResponseFacade.java:352)org.apache.jsp.test_jsp._jspService(test_jsp.java:62)org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)javax.servlet.http.HttpServlet.service(HttpSer......
  • Tomcat 5.5部署jsp项目—jsp乱码问题的解决
    1、最基本的乱码问题。这个乱码问题是最简单的乱码问题。一般新会出现。就是页面编码不一致导致的乱码。<%@pagelanguage="java"pageEncoding="UTF-8"%><%@pagecontentType="text/html;charset=iso8859-1"%><html><head><title>中文问题</title><......