2012-05-24 127 views
2

我需要通过在C#中HttpWebRequest的本地路径。我有我的C盘test.xml,我需要得到该文件在HttpWebRequest。但它会抛出异常通本地路径HttpWebRequest的

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

行“无效的URI:权限/主机无法解析。”

我coding->

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

能否请您解释一下为什么你需要通过HTTP获取本地文件吗?有可能有更好的方法来做你真正需要的东西。 –

+0

居然还没有开发服务器端的编码,我需要检查自己的编码的其余部分工作properly.so我认为他们开发的服务器端编码的话,我会得到XML file.so之后,直到我需要做我的进一步工作。 – DevT

回答

2

我相信file: URI应该有前瞻性斜线,而不是反斜杠创建。所以,使用此:

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

我注意到,当我输进我的反斜杠浏览器,FF将其转换为正斜杠我。

+0

我想这2 URI但还是给了同样的异常{“无效的URI:机构/主机无法解析。”} – DevT

+0

哦!尝试用正斜杠代替;我将修改的答案... –

+0

现在它给某种其他异常 - > {“无法投类型的对象System.Net.FileWebRequest为键入‘System.Net.HttpWebRequest’”}感谢名单.. .. – DevT

0

你应该使用WebRequest.Create(uri) - 这将自动创建基于URI类型(例如文件,HTTP等),合适的对象。现在,您可以为真实的网页或本地测试文件使用相同的代码。

不要使用FileWebRequest构造:

我的FileWebRequest的文档中看到了这一点。使用WebRequest.Create 方法初始化FileWebRequest类的新实例。如果 URI方案是file://,则Create方法将返回一个FileWebRequest 对象。