WP7:无法使用webclient.OpenReadAsync从httpget url获取img

时间:2011-08-06 10:37:49

标签: silverlight windows-phone-7 webclient http-get

我需要在Windows phone7 appplication上从此API获取图像,

getvmsimg

描述:

API for get variable message sign (VMS) as img

URL:

http://athena.traffy.in.th/apis/apitraffy.php?api=…&id=…[w=...]&[h=...]

格式:

Image: PNG

HTTP方法:

GET

需要身份验证:

true

API费率限制:

unlimited

这是我的代码 我必须首先通过另一个API获取会话密钥(完全没问题),然后我必须使用会话密钥作为httpget url中的参数。 我的钥匙正确100%,我已经检查过了。 但它错误在“image.SetSource(e.Result);”行(未指定错误)。

public intsign()
{
    InitializeComponent();


    client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
    client.DownloadStringAsync(new Uri("http://api.traffy.in.th/apis/getKey.php?appid="+appid));

}

void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    rd = e.Result;
    sessionkey = MD5Core.GetHashString(appid + rd) + MD5Core.GetHashString(hiddenkey + rd);
    //MessageBox.Show(sessionkey);

    client2.OpenReadCompleted += new OpenReadCompletedEventHandler(client2_OpenReadCompleted);
    client2.OpenReadAsync(new Uri("http://athena.traffy.in.th/apis/apitraffy.php?api=getvmsimg&key=" + sessionkey + "&appid=" + appid + "&id=1&h=480&w=480"),client2);
}

void client2_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
    BitmapImage image = new BitmapImage();
    image.SetSource(e.Result);
    intsignimg.Source = image;
}

thx,伙计

1 个答案:

答案 0 :(得分:0)

您是否尝试将整个流(带缓冲区或其他)写入 MemoryStream ,然后使用该MemoryStream而不是直接使用生成的流?