首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用UriBuilder构建httpRequest

使用UriBuilder构建httpRequest
EN

Stack Overflow用户
提问于 2014-11-04 09:03:35
回答 2查看 3.5K关注 0票数 2

我试图构建以下uri

代码语言:javascript
复制
http://localhost:8080/TestService.svc/RunTest

我是这样做的

代码语言:javascript
复制
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);

上面的内容会产生异常。

代码语言:javascript
复制
Invalid URI: The hostname could not be parsed.

我将感谢你在解决这个问题上的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-04 13:47:22

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

代码语言:javascript
复制
var uriBuilder = new UriBuilder();
uriBuilder.Host = "localhost";
uriBuilder.Port = 8080;
uriBuilder.Path = String.Format("/{0}/{1}", "TestService.svc", "RunTest");
var address = uriBuilder.ToString();
票数 2
EN

Stack Overflow用户

发布于 2014-11-04 09:24:12

当我运行您的代码时,正如您所指出的,我也看到方括号作为address变量的值,但是我没有在生成的Uri中看到PerfTestService,也不知道为什么会这样?!我看到:

代码语言:javascript
复制
http://[localhost:8080/TestService.svc]/RunTest

由于您已经知道主机和路径,我建议您将其构造为字符串。

代码语言:javascript
复制
 var uriBuilder = new UriBuilder("http://localhost:8080/TestService.svc/RunTest");
 string address = uriBuilder.ToString();
 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26731176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档