c# - 获取 HTTP 标头值
问题描述
我想从特定的头文件中获取 HTTP 头值(我不知道它们叫什么)。
对于头文件,我的意思是:https ://imgur.com/a/bkBMLaa 。我如何从中读取状态码?我试图获取此代码,但它返回了 OK(200) 而用户名甚至不存在
using System;
using System.Net.Http;
using System.Threading.Tasks;
namespace HttpClientEx
{
class Program
{
static async Task Main(string[] args)
{
using var client = new HttpClient();
var content = await client.GetStringAsync("https//tiktok.com/@euiwfhnneuwih");
Console.WriteLine(content);
}
}
}
解决方案
由于您不知道标头是什么,您可以通过调试器运行代码并查看我在此处提供的示例中的值。一旦你看到标题被称为什么,你就可以在你的代码中检索它们,就像我在下面做的那样。您也可以从响应中获取状态代码。
您可以像这样从客户端本身设置和获取默认标头
var client = new HttpClient();
// Set headers like this
client.DefaultRequestHeaders.Add("Accept", "application/*+xml;version=5.1");
// this gives you the string value of the header
var requestHeader = client.DefaultRequestHeaders.Accept.ToString();
// this gives you an IEnumerable<string> of headers
var requestHeader2 = client.DefaultRequestHeaders.GetValues("Accept");
// You can retrieve the header like this.
var acceptHeader = client.DefaultRequestHeaders.Accept.ToString();
要获取它们,您将执行相同的操作,但从 response.Header 获取它们。
var response = client.GetAsync("https://www.google.com").Result;
var cacheControlHeader = response.Headers.CacheControl.ToString();
var cacheControlHeader2 = response.Headers.GetValues("Cache-Control");
// The status code can be retrieved like this
var statusCode = response.StatusCode;
推荐阅读
- c# - 克服for each循环的void错误
- c++ - 如何将 google::protobuf::Message 直接序列化到预分配的内存中?
- html - 使用css/html链接悬停的背景图片
- php - 链接 get 函数以返回特定 $this 属性的方法
- python - 编码一个范围内的概率分布函数,即高和低(PYTHON)
- javascript - Javascript - 按日期然后按时间对对象数组进行排序
- c# - 更改日期时间的格式而不转换为字符串
- javascript - Angular 方法可能会返回一个承诺而不是值
- pandas - Pandas MultiIndex 向量设置
- css - 除非我将鼠标快速悬停并悬停在 ul open 子菜单的最左侧/右侧,否则页脚的导航子菜单在鼠标移出后不会保持打开状态