我尝试构建以下uri

http://localhost:8080/TestService.svc/RunTest


我做如下

var uriBuilder = new UriBuilder();
uriBuilder.Host = "localhost:8080/TestService.svc";
uriBuilder.Path = String.Format("/{0}", "RunTest");
string address = uriBuilder.ToString()

//In debugger the address looks like http://[http://localhost:8080/TestService.svc]/RunTest
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(address);


上面产生一个异常

Invalid URI: The hostname could not be parsed.


感谢您为解决问题提供的帮助

最佳答案

使用Uri构建器时,需要将主机,端口和路径作为自己的行。此外,TestService.svc也是路径的一部分,而不是主机的一部分,如果不使用端口,而必须使用端口,则必须将它们分开,否则可以忽略它。

var uriBuilder = new UriBuilder();
uriBuilder.Host = "localhost";
uriBuilder.Port = 8080;
uriBuilder.Path = String.Format("/{0}/{1}", "TestService.svc", "RunTest");
var address = uriBuilder.ToString();

关于c# - 使用UriBuilder并构造httpRequest,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26731176/

10-10 18:42