c# - 在 C# 中解析原始 HTTP 响应以获取状态代码

标签 c# http sockets httpresponse

有没有一种简单的方法来解析 HTTP 响应字符串,如下所示:

"HTTP/1.1 200 OK\r\nContent-Length: 1433\r\nContent-Type: text/html\r\nContent-Location: http://server/iisstart.htm\r\nLast-Modified: Fri, 21 Feb 2003 23:48:30 GMT\r\nAccept-Ranges: bytes\r\nETag: \"09b60bc3dac21:1ca9\"\r\nServer: Microsoft-IIS/6.0\r\nX-Po"

我想获取状态码。我不一定需要将其转换为 HttpResponse 对象,但这是可以接受的,而且只需解析出状态代码。我能否将其解析为 HttpStatusCode 枚举?

我使用的是基于套接字的方法,无法改变我获得响应的方式。我只会使用这个字符串。

最佳答案

编辑考虑到“我正在使用基于套接字的方法并且无法改变我获得响应的方式。我将只使用这个字符串”。

怎么样

  string response = "HTTP/1.1 200 OK\r\nContent-Length: 1433\r\nContent-Type: text/html\r\nContent-Location: http://server/iisstart.htm\r\nLast-Modified: Fri, 21 Feb 2003 23:48:30 GMT\r\nAccept-Ranges: bytes\r\nETag: \"09b60bc3dac21:1ca9\"\r\nServer: Microsoft-IIS/6.0\r\nX-Po";

  string code = response.Split(' ')[1];
  // int code = int.Parse(response.Split(' ')[1]);

我最初是这样建议的:

  HttpWebRequest webRequest =(HttpWebRequest)WebRequest.Create("http://www.gooogle.com/");
  webRequest.AllowAutoRedirect = false;
  HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
  int statuscode = (int)response.StatusCode)

关于c# - 在 C# 中解析原始 HTTP 响应以获取状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6779303/

相关文章:

linux - UDP广播和单播通过同一个套接字?

javascript - Socket.io mysql 连接错误

.net - 关于如何将数据流式传输到服务器 .NET 的最佳实践

http - 无法获取 http header

c# - Linq to Objects DateTime 除了忽略时间

c# - 存储过程中的事务 + 客户端代码

javascript - HTML 页面重定向到脚本的最快方法

java - 与单独的线程读/写操作聊天。写入线程立即关闭

c# - EntityFramework DbContext 生命周期 + Postgres : "An operation is already in progress."

c# - 如何在 Visual Studio 中为项目引用设置 "Specific Version"属性