I am using the Web Client Class to download files from the internet (Flickr actually).
This works fine as long as I use : WebClient().DownloadData(string)
, however this locks up the UI as it is Not asynchronous.
However when I try WebClient().DownloadDatAsync(string)
, I get a compile error:
"Unable to convert System.String to System.Uri".
The string MediumUrl returns "http://farm4.static.flickr.com/2232/2232/someimage.jpg"
So the question is how do I convert the string "http://farm4.static.flickr.com/2232/2232/someimage.jpg"
to a Uri.
Things I have tried-
I have tried Uri myuri = new uri(string)
- errors out as above.
foreach (Photo photo in allphotos)
{
//Console.WriteLine(String.Format("photo title is :{0}", photo.Title));
objimage = new MemoryStream(wc.DownloadData(photo.MediumUrl));
images.Add(new Pictures(new Bitmap(objimage), photo.MediumUrl, photo.Title));
}
This works just fine;
System.Uri uri = new System.Uri("http://farm4.static.flickr.com/2232/2232/someimage.jpg");
By the way; I notice you mistyped the expression new uri(..., with lowercase uri. This is not your problem, is it? Because it should be "new Uri".
Okay, so I think if the others have proved your URI is valid in their code and it compiles etc. and you also mention it is generated at runtime - it could be that the UriString you are generating at runtime is invalid and not what you are expecting?
Instead of letting an exception be thrown for attempting to create a Uri from an invalid string, I would suggest the following method IsWellFormedUriString on the Uri class.
string uriString = "your_UriString_here";
if (Uri.IsWellFormedUriString(uriString, UriKind.Absolute))
{
Uri uri = new Uri(uriString);
}
else
{
Logger.WriteEvent("invalid uriString: " + uriString);
}
Might help with your debugging also.
objimage = new MemoryStream(wc.DownloadData(new Uri(photo.MediumUrl)));
b) I have tried Uri myuri = new uri(string) - errors out as above.
This is the usual way to create a Uri from a string... I don't see why it wouldn't work if the string is a valid URI
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With