2010-11-16 27 views
14

Tôi đang cố gắng để xây dựng Uri Nhưng tôi vẫn chưa thể xử lý xấu uri củakhông hợp lệ URI: Tên máy không thể được phân tích

Có cách nào chúng ta có thể xử lý

if (reviews[e.Item.ItemIndex].URL.ToString().Contains("http:")) 
{ 
     oURI = new Uri(reviews[e.Item.ItemIndex].URL.ToString()); 
} 
else 
{ 
    oURI = new Uri("http://"+ reviews[e.Item.ItemIndex].URL.ToString()); 
} 

phần khác xấu uri của bị lỗi ra cho xấu uri của Cảm ơn bạn

+1

Nếu bạn sử dụng thẻ Mã mẫu, sẽ dễ dàng hơn khi đọc câu hỏi này –

+0

Câu hỏi của bạn là gì? – SLaks

+0

@Femaref: Bạn đang chỉnh sửa không chính xác. 'Tôi đang cố gắng xây dựng ...' là chính xác. – gligoran

Trả lời

18

Gọi Uri.TryCreate:

string original = reviews[e.Item.ItemIndex].URL.ToString(); 
if (!original.StartsWith("http:")) 
    original = "http://" + original; 
Uri uri; 
if (!Uri.TryCreate(original, UriKind.Absolute, out uri)) { 
    //Bad bad bad! 
} 
+0

Thật tuyệt, tôi không biết nó tồn tại. Tôi đã xóa bài đăng của tôi vì bài đăng của bạn có vẻ là câu trả lời hay nhất. –

+0

Bí quyết Cảm ơn bạn rất nhiều .. – kumar

0

Tôi gặp lỗi tương tự với nginx fastcgi-mono-server4. Hóa ra máy chủ web cung cấp giá trị regex cho SERVER_NAME. Vì vậy, tôi phải sửa lỗi trên máy chủ bằng cách thay thế fastcgi_param SERVER_NAME $server_name; bằng fastcgi_param SERVER_NAME $host;

0

Tôi có một khoảng trống sau "http: //" như http: // exampleServer/exampleservice.svc đã gây ra lỗi này.

Các vấn đề liên quan