Trong một trong số previous posts, đề xuất sử dụng System.Uri để kiểm tra xem URL có hợp lệ hay không. Làm thế nào để làm điều đó?Làm cách nào để sử dụng lớp System.Uri .NET để kiểm tra xem URL có hợp lệ không?
Trả lời
Để kiểm tra xem một địa chỉ có giá trị thay vì sử dụng ngoại lệ bạn có thể sử dụng TryCreate phương pháp:
Uri result;
if (Uri.TryCreate("http://www.google.com", UriKind.RelativeOrAbsolute, out result))
{
// the url is valid
}
Nếu bạn đang kiểm tra xem cấu trúc của URL có hợp lệ không, thì previous answer là tốt.
Tuy nhiên, nếu bạn muốn kiểm tra xem tài nguyên thực sự tồn tại, bạn sẽ phải sử dụng các lớp bắt nguồn từ WebRequest/WebResponse. Đối với tài nguyên HTTP và FTP, các lớp HttpWebRequest/FtpWebRequest và HttpWebResponse/FtpWebRequest sẽ hoạt động tốt (như WebClient), nhưng nếu bạn có các lược đồ khác mà bạn phải hỗ trợ, bạn sẽ phải tìm các nhà cung cấp cụ thể cho lược đồ đó.
có thể sử dụng phương pháp IsWellFormedUriString tĩnh:
bool isValid = Uri.IsWellFormedUriString(url, UriKind.Absolute);
http://msdn.microsoft.com/en-us/library/system.uri.iswellformeduristring.aspx
Sử dụng Uri .TryCreate có thể có một số vấn đề với Uris tương đối, với chuỗi như thế này "/folder/{ht.com.m\/sx.r:erp://" TryCreate trả về true, vì vậy tôi tạo ra phương pháp khuyến nông sử dụng IsWellFormedUriString và TyrCreate, tôi không chắc chắn TryCreate là cần thiết, với các bài kiểm tra nhỏ của tôi tôi nhận được kết quả tương tự có hoặc không có TryCreate
public static bool IsUri(this string source) {
if(!string.IsNullOrEmpty(source) && Uri.IsWellFormedUriString(source, UriKind.RelativeOrAbsolute)){
Uri tempValue;
return (Uri.TryCreate(source, UriKind.RelativeOrAbsolute, out tempValue));
}
return (false);
}
Ví dụ
address= "http://www.c$nbv.gob.mx"
if(address.IsUri()){
//returns false
}
address= "http://www.cnbv.gob.mx"
if(address.IsUri()){
//returns true
}
address= "http://www.cnbv.gob.mx:80"
if(address.IsUri()){
//returns true
}
address= "/directory/path"
if(address.IsUri()){
//returns true
}
address= "~re#l|ativ[ainco#recta\car:.\peta"
if(address.IsUri()){
//returns false
}
- 1. C# Làm cách nào để kiểm tra xem URL có tồn tại/hợp lệ không?
- 2. Cách kiểm tra xem URL có hợp lệ không
- 3. Làm cách nào để dừng System.Uri không mã hóa URL?
- 4. Kiểm tra xem url có hợp lệ hay không
- 5. Kiểm tra xem url hợp lệ để tôi có thể chuyển nó tới NSURL không?
- 6. Làm cách nào để kiểm tra xem URL có phải là hình ảnh hợp lệ (trong javascript) không?
- 7. Làm cách nào để kiểm tra nhanh xem đối tượng NSString có phải là url hợp lệ không?
- 8. Làm cách nào để kiểm tra xem biến enum có hợp lệ không?
- 9. Cách kiểm tra xem con trỏ có hợp lệ không?
- 10. Cách kiểm tra xem chuỗi có phải là URL HTTP hợp lệ không?
- 11. Làm cách nào để tạo một ràng buộc để kiểm tra xem email có hợp lệ trong postgres không?
- 12. Làm cách nào để kiểm tra xem một ALAset có tồn tại hay không bằng cách sử dụng URL
- 13. Kiểm tra xem Tệp PDF có hợp lệ không (Python)
- 14. cách kiểm tra xem tệp pdb có hợp lệ để gỡ lỗi một assembly hay không
- 15. Làm cách nào để kiểm tra xem một ngoại lệ cụ thể có bị ném không?
- 16. Làm thế nào để kiểm tra xem một mảng byte là một hình ảnh hợp lệ?
- 17. Có thích hợp hơn để kiểm tra xem nhà xây dựng có ném ngoại lệ không?
- 18. Cách kiểm tra xem phiên không hợp lệ
- 19. Python: Cách kiểm tra xem một chuỗi có phải là một IRI hợp lệ không?
- 20. Làm cách nào để kiểm tra URL cho 404 bằng cách sử dụng Selenium WebDriver?
- 21. Làm cách nào để kiểm tra xem chuỗi có phải là biểu diễn màu hex hợp lệ không?
- 22. Làm cách nào để tạo mã có thể kiểm tra bằng các lớp .Net IO?
- 23. Có cách nào để kiểm tra xem var có đang sử dụng setInterval() không?
- 24. Làm cách nào để kiểm tra xem một lớp groovy có thuộc tính tĩnh hay không?
- 25. Cách tốt nhất để kiểm tra xem Chuỗi có chứa URL trong Java/Android không?
- 26. Cách kiểm tra xem url đó có phải là nguồn hình ảnh hợp lệ bằng Jquery không?
- 27. Kiểm tra xem đường dẫn có hợp lệ trong Python
- 28. cách kiểm tra xem 2 tệp có bằng .NET không?
- 29. Kiểm tra xem ValidationGroup có hợp lệ từ mã sau
- 30. Với iOS, cách kiểm tra xem URL có trống không
thats giống như nó. cảm ơn! –
Bây giờ theo Uri.TryCreate url như hht: //www.gogole.com là hợp lệ. Mặc dù htt: là lược đồ không hợp lệ. Tại sao là htt: okay? –
htt: là chương trình hoàn toàn hợp lệ. Một giao thức tùy chỉnh có thể định nghĩa lược đồ này. –