2

我需要在 c# 中将本地路径传递给 HttpWebRequest。我的 C 盘中有 test.xml,我需要在HttpWebRequest. 但它会引发异常

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{}
4

2 回答 2

2

我相信file:应该使用正斜杠而不是反斜杠创建 URI。所以,使用这个:

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

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

于 2012-05-24T04:40:18.440 回答
1

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

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

不要使用 FileWebRequest 构造函数。使用 WebRequest.Create 方法初始化 FileWebRequest 类的新实例。如果 URI 方案是 file://,则 Create 方法返回一个 FileWebRequest 对象。

于 2016-06-08T10:11:49.043 回答