c# – 无效的URI:当url有多个冒号时指定的端口无效
发布时间:2020-12-16 01:53:49 所属栏目:百科 来源:网络整理
导读:我正在使用dnsdynamic.org指向我家中托管的个人网站.我家的ip会经常每月更换一次. dnsdynamic.org提供了一个更新ip的web方法调用. https://username:password@www.dnsdynamic.org/api/?hostname=techno.ns360.infomyip=127.0.0.1 当我通过浏览器调用它时,它
我正在使用dnsdynamic.org指向我家中托管的个人网站.我家的ip会经常每月更换一次. dnsdynamic.org提供了一个更新ip的web方法调用.
https://username:password@www.dnsdynamic.org/api/?hostname=techno.ns360.info&myip=127.0.0.1 当我通过浏览器调用它时,它完美无缺.当我尝试通过c#代码调用它时,它会抛出以下异常. Invalid URI: Invalid port specified. at System.Uri.CreateThis(String uri,Boolean dontEscape,UriKind uriKind) at System.Net.WebRequest.Create(String requestUriString) 由于url中有冒号,因此看起来system.uri尝试将我的密码解析为整数. 我尝试在.org之后添加一个端口 https://username:password@www.dnsdynamic.org:443 没有运气. 有人可以指点我如何解决这个错误. 在创建uri时,我尝试了不要逃避和逃避选项,仍然无法正常工作. var ri = new Uri("https://username:password@www.dnsdynamic.org/api/?hostname=techno.ns360.info&myip=127.0.0.1",true); 编辑: 仍未找到解决此问题的解决方案.我无法更改用户名,因为dnsdyanmic.org使用电子邮件地址作为用户名. 解决方法
如果您使用HttpWebRequest来进行请求,则不应在URI中包含凭据(如您所知,它无效).
您应该将凭据添加到HttpWebRequest并让它处理它们通过: // Only broke this up for readability var uri = new Uri("https://www.dnsdynamic.org/api/?hostname=techno.ns360.info" + "&myip=127.0.0.1",true); var cache = new CredentialCache(); cache.Add(uri,"Basic",new NetworkCredential("username","password")); var request = WebRequest.Create(uri); request.Credentials = cache; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – ListBox selectedItem工作但设置不在MVVM中工作
- ruby – 为什么我不能在Ubuntu 11.04中执行多用户RVM安装?
- 正则表达式 – 如何在Matlab中打印数千个分隔符的整数?
- 什么是软件设计(翻译、转载自Jack W. Reeves的论文《What
- 如何在iphone中找出当年是否闰年
- ruby – 使用饼干与Rack :: Test
- Oracle参数之set与reset设置
- 如何在Oracle SQL * Plus中显示LOB列的完整内容?
- ASP.NET Suggester - 自动完成控件
- react-native – 当应用程序处于前台时,IOS Expo推送通知