Bu yüzden, yeni WebAPI'm için bir GET yapıyorum ve parametrelerimden biri, encodeURIComponent kullanarak kaçtığım bir URL.C# MVC ASP.NET URL parametresi, HTTP kodsuz yanlış kodlanmış GET
GET /api/myapi/myurl/https%3A%2F%2Ft.co%2FkIEnlT8Mvn HTTP/1.1
yüzden bu iyi gibi fiddler olarak, istek görünüyor. Benim Application_BeginRequest isteği bakarsak
Ancak, ben
?HttpContext.Current.Request.Url.AbsolutePath
"/api/myapi/myurl/https:/t.co/kIEnlT8Mvn"
?HttpContext.Current.Request.Url.AbsoluteUri
"http://localhost:23652/api/myapi/myurl/https:/t.co/kIEnlT8Mvn"
?HttpContext.Current.Request.Url.OriginalString
"http://localhost:23652/api/myapi/myurl/https:/t.co/kIEnlT8Mvn"
?Request.RawUrl
"/api/myapi/myurl/https:/t.co/kIEnlT8Mvn"
Yani benim sorudur olsun: Ben istemciden gönderilen şeyin dışarı doğru URL'yi alabilirim? (SO kısa URL'ler nefret etmesinden // değişti)
veya
https% 3A% 2F% 2Ft.co% 2FkIEnlT8Mvn SlashSlasht.co/kIEnlT8Mvn: Ben iyi bir URL https ya
almak istiyorum
değil https:
/t.co/kIEnlT8Mvn (Ben de aynı sonuçlarla, kaçış() ve encodeURL() ile URL'yi kodlayan denedim.)
evet, gayet mantıklı. Aldığım URL'leri düzeltmek için mevcut işleyicime kod ekledim, ancak çözümünüz muhtemelen daha iyi olacaktır. Bunu yapmamın tüm yolunu değiştirebilirim, çünkü olabildiğince küçük bir işe yaramasını istiyorum. – weloytty