将本地路径传递给HttpWebRequest

时间:2012-05-24 04:31:59

标签: c#

我需要在c#中将本地路径传递给HttpWebRequest。我的c盘中有test.xml,我需要在HttpWebRequest中获取该xml文件。但它在

中抛出异常
HttpWebRequest rqst = (HttpWebRequest)HttpWebRequest.Create(Uri.EscapeUriString(urlServ))

line“无效的URI:无法解析授权/主机。”

我的编码 - >

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

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

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

  

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