C#更改HTTP请求头

C#更改HTTP请求头,c#,C#,所以我试着做我自己的代理服务器,但是因为broxy不能得到用户真正的ip,因为它返回代理ip。我已经尝试了大约一个小时来添加包含用户真实IP的标头。它的基本代理将数据发送到真正的服务器并将数据返回给用户 我尝试编辑标题的代码: HttpContent content = new ByteArrayContent(packet); content.Headers.Add("USER_IP", this.GetIP()); byte[] finalData = await content.Read

所以我试着做我自己的代理服务器,但是因为broxy不能得到用户真正的ip,因为它返回代理ip。我已经尝试了大约一个小时来添加包含用户真实IP的标头。它的基本代理将数据发送到真正的服务器并将数据返回给用户

我尝试编辑标题的代码:

HttpContent content = new ByteArrayContent(packet);
content.Headers.Add("USER_IP", this.GetIP());

byte[] finalData = await content.ReadAsByteArrayAsync();
Console.WriteLine(Encoding.UTF8.GetString(finalData));

当它将结果打印到控制台时。。。它与以前一样,长度也一样:s

您应该尝试克隆数据包。如果您是代理,您正在发出第二个请求,您应该能够编辑该请求,而不是从client@mageos该代码来自代理,我已经用新的ByteArrayContent(数据包)克隆了它;然后尝试添加该头并将其发送到real server。如果我没有记错ReadAsByteArrayAsync,ReadAsStringAsync ecc将只读取实际内容(实际上通常是您需要的唯一信息)。要检索头,在您的示例中,您需要从Headers属性中读取它们。你有没有试着发送数据,看看另一端收到了什么?@FabioMarcolini是的,我的问题是它不返回那些我的标题,是的,我尝试使用PHPIt返回标题,实际上对我有效,请注意,在响应中,你不必使用ReadAsByteArrayAsync,但你必须读取它的标题。