عنوان URL المطلق من عنوان URL الأساسي + النسبي في C#
سؤال
لدي عنوان URL أساسي:
http://my.server.com/folder/directory/sample
وواحد نسبي :
../../other/path
كيفية الحصول على عنوان URL المطلق من هذا؟إنه أمر بسيط جدًا باستخدام معالجة السلسلة، لكنني أرغب في القيام بذلك بطريقة آمنة، باستخدام Uri
فئة أو شيء من هذا القبيل.
إنه لتطبيق C# قياسي، وليس تطبيق ASP.NET.
المحلول
var baseUri = new Uri("http://my.server.com/folder/directory/sample");
var absoluteUri = new Uri(baseUri,"../../other/path");
أو
Uri uri;
if ( Uri.TryCreate("http://base/","../relative", out uri) ) doSomething(uri);
نصائح أخرى
قد يبحث البعض عن حل Javascript الذي يسمح بتحويل عناوين URL "سريعًا" عند تصحيح الأخطاء
var absoluteUrl = function(href) {
var link = document.createElement("a");
link.href = href;
return link.href;
}
استخدم مثل:
absoluteUrl("http://google.com")
http://google.com/
أو
absoluteUrl("../../absolute")
http://stackoverflow.com/absolute
لا تنتمي إلى StackOverflow