عنوان URL المطلق من عنوان URL الأساسي + النسبي في C#

StackOverflow https://stackoverflow.com/questions/128990

  •  02-07-2019
  •  | 
  •  

سؤال

لدي عنوان 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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top