草庐IT

c# - 为什么 Uri.TryCreate 在 url 包含土耳其字符时抛出 NRE?

我遇到了一个有趣的情况,当它应该返回false时,我从Uri.TryCreate方法中得到了NRE。您可以重现问题,如下所示:Uriurl;if(Uri.TryCreate("http:Ç",UriKind.RelativeOrAbsolute,outurl)){Console.WriteLine("success");}我猜它在解析过程中失败了,但是当我尝试"http:A"时,它返回true并将其解析为相对url。即使解析失败,据我所知,它也应该返回false,这里可能是什么问题?这似乎是实现中的错误,因为文档没有提及此方法的任何异常。错误发生在.NET4.6.1而不是4.0

c# - WPF 包 URI 中的逗号

WPFPackURIs使用三个连续的逗号,例如:pack://application:,,,/myFolder/myPic.bmp,,,部分应该意味着什么?它只是一个分隔符吗?逗号之间可以加任何东西吗? 最佳答案 背景一个URIiscomposedof方案、权限和路径1。例如,取此网页的httpURL:https://stackoverflow.com/questions/16256056/commas-in-wpf-pack-urisscheme=https://authority=stackoverflow.compath=/q

c# - 结合两个相对的 Uris

我需要结合两个相对的Uris,例如../mypath/和myimage.png创建../mypath/myimage.png。它们不是磁盘上文件的路径,因此Path.Combine不合适(它们是网页资源的相对路径)。newUri抛出ArgumentOutOfRangeException因为基本uri是相对的(不是绝对的)。除了检查尾部斜杠然后自己组合路径之外,我还有其他选择吗?编辑:这是一个测试用例,当第一个url不包含尾部斜杠时,Path.Combine将不起作用://Thefirstcasefailswithresult"../testpath\resource.png"[Test

c# - "The format of the URI could not be determined"与 WebRequest

我正在尝试使用C#中的WebRequest对站点执行POST。我发布到的站点是一个SMS站点,消息文本是URL的一部分。为了避免URL中出现空格,我调用HttpUtility.Encode()对其进行URL编码。但我不断收到URIFormatException-“无效的URI:无法确定URI的格式”-当我使用类似于此的代码时:stringurl="http://www.stackoverflow.com?question=asentencewithspaces";stringencoded=HttpUtility.UrlEncode(url);WebRequestr=WebReques

c# - 使用 System.Uri 删除多余的斜线

我的程序中有一个条件,我必须组合一个服务器(例如http://server1.my.corp/),它可能有也可能没有结束斜杠和相对路径(例如/Apps/TestOne/)。根据docs,Uri应该...CanonicalizesthepathforhierarchicalURIsbycompactingsequencessuchas/./,/../,//,...因此,当我执行类似varurl=newUri(server+relativePath)的操作时,我希望它采用本来应该是http://server1.my.corp的内容//Apps/TestOne/并删除双斜杠(即//->/),

c# - 带有 urlencoded 字符的 System.Net.Uri

我需要在我的应用程序中请求以下URL:http://feedbooks.com/type/Crime%2FMystery/books/top当我运行以下代码时:UrimyUri=newUri("http://feedbooks.com/type/Crime%2FMystery/books/top");Uri构造函数将%2F解码为文字/,我收到404错误,因为它将URL更改为:http://feedbooks.com/type/Crime/Mystery/books/topUri类有一个带有参数dontEscape的构造函数,但该构造函数已被弃用,将其设置为true无效。我的第一个想法是

c# - HTTPClient 错误提供了无效的请求 URI

我正在尝试使用以下代码从网页中获取内容:HttpClienthttp=newHttpClient();varresponse=awaithttp.GetByteArrayAsync("www.nsfund.ir/news?p_p_id=56_INSTANCE_tVzMoLp4zfGh&_56_INSTANCE_tVzMoLp4zfGh_mode=news&_56_INSTANCE_tVzMoLp4zfGh_newsId=3135919&p_p_state=maximized");Stringsource=Encoding.GetEncoding("utf-8").GetString(r

c# - 请求的 URI 对于此 FTP 命令无效

我在visualstudio2010中的C#.net应用程序中添加了以下代码WebRequestrequest=WebRequest.Create("ftp://myftp.com");request.Method=WebRequestMethods.Ftp.MakeDirectory;request.Credentials=newNetworkCredential("myusername","12344");using(varresp=(FtpWebResponse)request.GetResponse()){Console.WriteLine(resp.StatusCode);}

c# - 无效的 URI : The Uri string is too long

我正在尝试获取一个模式并根据我的xml进行验证。XmlReaderSettingsettings=newSystem.Xml.XmlReaderSettings();settings.Schemas.Add(null,"http://example.com/myschema.xsd");settings.ValidationEventHandler+=newSystem.Xml.Schema.ValidationEventHandler(settings_ValidationEventHandler);settings.ValidationType=ValidationType.Sch

c# - Uri.AbsolutePath 用空格弄乱了路径

在WinApp中,我只是想从Uri对象获取绝对路径:UrimyUri=newUri(myPath);//myPathisastring//somewhereelseinthecodestringpath=myUri.AbsolutePath;如果我的原始路径中没有空格,这就可以正常工作。如果其中有空格,则字符串会被破坏;例如'Documentsandsettings'变成'Documents%20and%20Setting'等。如有任何帮助,我们将不胜感激!编辑:LocalPath而不是AbsolutePath成功了! 最佳答案 这