将本地路径传递给 HttpWebRequest

本文关键字:HttpWebRequest 路径 | 更新日期: 2023-09-27 18:35:14

我需要在 c# 中将本地路径传递给 HttpWebRequest。 我在我的 C 驱动器中有测试.xml,我需要在 HttpWebRequest 中获取该 XML 文件。 但它在

HttpWebRequest rqst = (HttpWebRequest)HttpWebRequest.Create(Uri.EscapeUriString(urlServ))

行"无效的 URI:无法解析颁发机构/主机"。

我的编码>

string urlServ = "file:''c:''test.xml";
  try
   {             
      HttpWebRequest rqst = (HttpWebRequest)HttpWebRequest.Create(Uri.EscapeUriString(urlServ));
      rqst.KeepAlive = false;
   }
catch{}

将本地路径传递给 HttpWebRequest

我相信

file: URI 应该使用正斜杠而不是反斜杠创建。因此,请使用此:

string urlServ = "file:///c:/test.xml";

注意到当我用反斜杠在浏览器中输入它时,FF 为我将其转换为正斜杠。

你应该

使用WebRequest.Create(uri) - 这将根据URI类型(例如文件,http等)自动创建正确的对象。现在,您可以将相同的代码用于实际网页或本地测试文件。

我在FileWebRequest的文档中看到了这一点:

不要使用 FileWebRequest 构造函数。使用 WebRequest.Create 方法初始化 FileWebRequest 类的新实例。如果 URI 方案 file://,创建方法返回文件Web请求 对象。