48.Http关键类

  1. 48.网络通信-超文本传输HTTP-Http关键类
    1. 48.1 知识点
      1. HttpWebRequest 类
        1. HttpWebRequest 类的重要方法
          1. HttpWebRequest.Create 创建新的 WebRequest
          2. HttpWebRequest.Abort 终止文件传输
          3. HttpWebRequest.GetRequestStream 获取用于上传的流
          4. HttpWebRequest.GetResponse 返回 HTTP 服务器响应
          5. HttpWebRequest.Begin/EndGetRequestStream 异步获取用于上传的流
          6. HttpWebRequest.Begin/EndGetResponse 异步获取返回的 HTTP 服务器响应
        2. HttpWebRequest 类的重要成员
          1. HttpWebRequest.Credentials 通信凭证
          2. HttpWebRequest.PreAuthenticate 是否随请求发送一个身份验证标头
          3. HttpWebRequest.Headers 构成标头的名称/值对的集合
          4. HttpWebRequest.ContentLength 发送信息的字节数
          5. HttpWebRequest.ContentType 在进行 POST 请求时,需要对发送的内容进行内容类型的设置
          6. HttpWebRequest.Method 操作命令设置
        3. HttpWebRequest类的更多信息
      2. HttpWebResponse 类
        1. HttpWebResponse 类的重要方法
          1. HttpWebResponse.Close 释放所有资源
          2. HttpWebResponse.GetResponseStream 返回从 FTP 服务器下载数据的流
        2. HttpWebResponse 类的重要成员
          1. HttpWebResponse.ContentLength 接受到数据的长度
          2. HttpWebResponse.ContentType 接受数据的类型
          3. HttpWebResponse.StatusCode HTTP 服务器下发的最新状态码
          4. HttpWebResponse.StatusDescription HTTP 服务器下发的状态代码的文本
          5. HttpWebResponse.BannerMessage 登录前建立连接时 HTTP 服务器发送的消息
          6. HttpWebResponse.ExitMessage HTTP 会话结束时服务器发送的消息
          7. HttpWebResponse.LastModified HTTP 服务器上的文件的上次修改日期和时间
        3. HttpWebResponse类的更多信息
      3. NetworkCredential、Uri、Stream、FileStream 类
      4. 总结
    2. 48.2 知识点代码

48.网络通信-超文本传输HTTP-Http关键类


48.1 知识点

HttpWebRequest 类

  • 命名空间:System.Net
  • HttpWebRequest 是主要用于发送客户端请求的类
  • 主要用途:用于向服务器发送 HTTP 客户端请求,可进行消息通信、上传、下载等操作。

HttpWebRequest 类的重要方法

HttpWebRequest.Create 创建新的 WebRequest
//1.Create 创建新的WebRequest,用于进行HTTP相关操作 能as成HttpWebRequest是因为字符串中的协议头有http
HttpWebRequest httpWebRequest = HttpWebRequest.Create(new Uri("http://192.168.1.101:8000/HTTPRoot/")) as HttpWebRequest;
HttpWebRequest.Abort 终止文件传输
//2.Abort  如果正在进行文件传输,用此方法可以终止传输 
httpWebRequest.Abort();
HttpWebRequest.GetRequestStream 获取用于上传的流
//3.GetRequestStream  获取用于上传的流
Stream requestStream = httpWebRequest.GetRequestStream();
HttpWebRequest.GetResponse 返回 HTTP 服务器响应
//4.GetResponse  返回HTTP服务器响应
HttpWebResponse httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse;
HttpWebRequest.Begin/EndGetRequestStream 异步获取用于上传的流
//5.Begin/EndGetRequestStream 异步获取用于上传的流
//httpWebRequest.BeginGetRequestStream()
HttpWebRequest.Begin/EndGetResponse 异步获取返回的 HTTP 服务器响应
//6.Begin/EndGetResponse 异步获取返回的HTTP服务器响应
//httpWebRequest.BeginGetResponse()

HttpWebRequest 类的重要成员

HttpWebRequest.Credentials 通信凭证
//1.Credentials 通信凭证,设置为NetworkCredential对象
httpWebRequest.Credentials = new NetworkCredential("", "");
HttpWebRequest.PreAuthenticate 是否随请求发送一个身份验证标头
//2.PreAuthenticate 是否随请求发送一个身份验证标头,一般需要进行身份验证时需要将其设置为true
httpWebRequest.PreAuthenticate = true;
HttpWebRequest.Headers 构成标头的名称/值对的集合
//3.Headers 构成标头的名称/值对的集合
//httpWebRequest.Headers
HttpWebRequest.ContentLength 发送信息的字节数
//4.ContentLength 发送信息的字节数 上传信息时需要先设置该内容长度
httpWebRequest.ContentLength = 100;
HttpWebRequest.ContentType 在进行 POST 请求时,需要对发送的内容进行内容类型的设置
//5.ContentType 在进行POST请求时,需要对发送的内容进行内容类型的设置
httpWebRequest.ContentType = "";
HttpWebRequest.Method 操作命令设置
// 操作命令设置
//  WebRequestMethods.Http 类中的操作命令属性
//  Get     获取请求,一般用于获取数据
//  Post    提交请求,一般用于上传数据,同时可以获取
//  Head    获取和 Get 一致的内容,只是只会返回消息头,不会返回具体内容
//  Put     向指定位置上传最新内容
//  Connect 表示与代理一起使用的 HTTP CONNECT 协议方法,该代理可以动态切换到隧道
//  MkCol   请求在请求 URI(统一资源标识符)指定的位置新建集合
httpWebRequest.Method = WebRequestMethods.Http.Get;

HttpWebRequest类的更多信息

了解HttpWebRequest类的更多信息,访问 https://docs.microsoft.com/zh-cn/dotnet/api/system.net.httpwebrequest?view=net-6.0

HttpWebResponse 类

  • 命名空间:System.Net
  • 它主要用于获取服务器反馈信息的类
  • 我们可以通过 HttpWebRequest 对象中的 GetResponse() 方法获取
  • 当使用完毕时,要使用 Close 释放

HttpWebResponse 类的重要方法

HttpWebResponse.Close 释放所有资源
// 释放所有资源
httpWebResponse.Close();
HttpWebResponse.GetResponseStream 返回从 FTP 服务器下载数据的流

HttpWebResponse 类的重要成员

HttpWebResponse.ContentLength 接受到数据的长度
HttpWebResponse.ContentType 接受数据的类型
HttpWebResponse.StatusCode HTTP 服务器下发的最新状态码
HttpWebResponse.StatusDescription HTTP 服务器下发的状态代码的文本
HttpWebResponse.BannerMessage 登录前建立连接时 HTTP 服务器发送的消息
HttpWebResponse.ExitMessage HTTP 会话结束时服务器发送的消息
HttpWebResponse.LastModified HTTP 服务器上的文件的上次修改日期和时间

HttpWebResponse类的更多信息

了解该类的更多信息,访问 https://docs.microsoft.com/zh-cn/dotnet/api/system.net.httpwebresponse?view=net-6.0

NetworkCredential、Uri、Stream、FileStream 类

  • 这些类在学习 FTP 时已经使用过了
  • 在 HTTP 通讯时使用方式不变

总结

Http 相关通讯类的使用和 FTP 非常类似,只有一些细节上的区别。之后我们在学习上传下载时再来着重讲解。


48.2 知识点代码

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Net;
using UnityEngine;

public class Lesson48_网络通信_超文本传输HTTP_Http关键类 : MonoBehaviour
{
    void Start()
    {
        #region 知识点一 HttpWebRequest类

        //命名空间:System.Net
        //HttpWebRequest是主要用于发送客户端请求的类
        //主要用于:发送HTTP客户端请求给服务器,可以进行消息通信、上传、下载等等操作


        //HttpWebRequest类重要方法

        //1.Create 创建新的WebRequest,用于进行HTTP相关操作 能as成HttpWebRequest是因为字符串中的协议头有http
        HttpWebRequest httpWebRequest = HttpWebRequest.Create(new Uri("http://192.168.1.101:8000/HTTPRoot/")) as HttpWebRequest;

        //2.Abort  如果正在进行文件传输,用此方法可以终止传输 
        //httpWebRequest.Abort();

        //3.GetRequestStream  获取用于上传的流
        Stream requestStream = httpWebRequest.GetRequestStream();

        //4.GetResponse  返回HTTP服务器响应
        HttpWebResponse httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse;

        //5.Begin/EndGetRequestStream 异步获取用于上传的流
        //httpWebRequest.BeginGetRequestStream()

        //6.Begin/EndGetResponse 异步获取返回的HTTP服务器响应
        //httpWebRequest.BeginGetResponse()


        //HttpWebRequest类重要成员

        //1.Credentials 通信凭证,设置为NetworkCredential对象
        httpWebRequest.Credentials = new NetworkCredential("", "");

        //2.PreAuthenticate 是否随请求发送一个身份验证标头,一般需要进行身份验证时需要将其设置为true
        httpWebRequest.PreAuthenticate = true;

        //3.Headers 构成标头的名称/值对的集合
        //httpWebRequest.Headers

        //4.ContentLength 发送信息的字节数 上传信息时需要先设置该内容长度
        httpWebRequest.ContentLength = 100;

        //5.ContentType 在进行POST请求时,需要对发送的内容进行内容类型的设置
        httpWebRequest.ContentType = "";

        //6.Method  操作命令设置
        //  WebRequestMethods.Http类中的操作命令属性
        //  Get     获取请求,一般用于获取数据
        //  Post    提交请求,一般用于上传数据,同时可以获取
        //  Head    获取和Get一致的内容,只是只会返回消息头,不会返回具体内容
        //  Put     向指定位置上传最新内容
        //  Connect 表示与代理一起使用的 HTTP CONNECT 协议方法,该代理可以动态切换到隧道
        //  MkCol   请求在请求 URI(统一资源标识符)指定的位置新建集合

        //了解该类的更多信息
        //https://docs.microsoft.com/zh-cn/dotnet/api/system.net.httpwebrequest?view=net-6.0

        #endregion

        #region 知识点二 HttpWebResponse类

        //命名空间:System.Net
        //它主要用于获取服务器反馈信息的类
        //我们可以通过HttpWebRequest对象中的GetResponse()方法获取
        //当使用完毕时,要使用Close释放

        //HttpWebResponse类重要方法:
        //1.Close:释放所有资源
        //2.GetResponseStream:返回从FTP服务器下载数据的流

        //HttpWebResponse类重要成员:
        //1.ContentLength:接受到数据的长度
        //2.ContentType:接受数据的类型
        //3.StatusCode:HTTP服务器下发的最新状态码
        //4.StatusDescription:HTTP服务器下发的状态代码的文本
        //5.BannerMessage:登录前建立连接时HTTP服务器发送的消息
        //6.ExitMessage:HTTP会话结束时服务器发送的消息
        //7.LastModified:HTTP服务器上的文件的上次修改日期和时间

        //了解该类的更多信息
        //https://docs.microsoft.com/zh-cn/dotnet/api/system.net.httpwebresponse?view=net-6.0

        #endregion

        #region 知识点三 NetworkCredential、Uri、Stream、FileStream类

        //这些类我们在学习Ftp时已经使用过了
        //在HTTP通讯时使用方式不变

        #endregion

        #region 总结

        //Http相关通讯类的使用和Ftp非常类似
        //只有一些细节上的区别
        //之后我们在学习上传下载时再来着重讲解

        #endregion
    }
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏