我正在编写一个简单的 c# Web 服务器,每当它给出 404 状态时,我总是得到net::ERR_HTTP_RESPONSE_CODE_FAILURE而不是 404。所有其他状态都工作正常,但这个状态除外。我尝试查找拼写错误,但一切看起来都是正确的,而且它显示加载资源失败,而不是像其他网站一样获取 example.com 404(未找到) 。我主要想知道为什么与其他网站相比,反应有所不同。
以下是给出这些结果的响应示例:
HTTP/1.1 404 Not Found
Date:
Server: MADSC
Content-Length: 196
Content-Type: text/html
Run Code Online (Sandbox Code Playgroud)
这里是生成响应的代码
public void WriteToStream(Stream stream)
{
try
{
string httpHeaders;
if (dataPath.Length > 0)
{
FileStream fs = new FileStream(dataPath, FileMode.Open, FileAccess.Read);
long streamSize = fs.Length;
httpHeaders = GenerateHttpHeaders(streamSize);
WriteHttpHeadersToStream(httpHeaders, stream);
fs.CopyTo(stream);
return;
}
int dataSize = data.Length;
httpHeaders = GenerateHttpHeaders(dataSize);
WriteHttpHeadersToStream(httpHeaders, stream);
}
catch (Exception e)
{
Console.WriteLine("Exception While Writing Response:" + e.ToString());
}
}
string GenerateHttpHeaders(long dataSize)
{
//Gets Response Code Discription
string responseCodeText = HttpResponseCodes.ResponseCodeText(responseCode);
//Creates And Adds Status Line
string httpStringData = $"HTTP/1.1 {responseCode} {responseCodeText}\n";
//If Present Adds Headers
httpStringData += HeadersToString();
httpStringData += $"Date: \nServer: {server}\n";
httpStringData += $"Content-Length: {dataSize}\nContent-Type: {contentType}\n";
//Adds Data Seperator
httpStringData += "\n";
return httpStringData;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8693 次 |
| 最近记录: |