Асинхронные HTTP-вызовы в Windows Phone 7 - PullRequest
1 голос
/ 10 марта 2011

Я хотел бы сделать запрос к серверу, проанализировать ответ и продолжить работу с моим приложением.Кажется, он никогда не доходит до метода обратного вызова, и я уверен, что когда я вызываю send (a_url), эта вещь вообще не выполняет HTTP-запрос.

public class item
{
    public status status { get; set; }
    public response response { get; set; }
}
public class status
{
    public int code { get; set; }
    public string message { get; set; }
}
public class response
{
    public string token { get; set; }
    public int distance { get; set; }
    public int angle { get; set; }
}

...

    public item deserializedJSON;

...

    /* sends the url string to the server */
    public void send(string url)
    {
        WebClient c = new WebClient();

// EDIT: Swapped the next two lines\
        c.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadStringCompleted);
        c.DownloadStringAsync(new Uri(url));


    }

    /* parses the JSON response from the server */
    public void DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
            deserializedJSON = JsonConvert.DeserializeObject<item>(e.Result);
            isReady = true;
    }

Ответы [ 3 ]

2 голосов
/ 10 марта 2011

Вы должны подключить событие до того, как вызовет метод!

public void send(string url)
{
    WebClient c = new WebClient();
    c.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadStringCompleted);
    c.DownloadStringAsync(new Uri(url));
}
0 голосов
/ 10 марта 2011

Событие может быть подключено после вызова загрузки - оно будет работать правильно.Вы устанавливали точки останова внутри обработчика событий, чтобы убедиться, что он действительно никогда не попадет в него?Где и как вы вызываете метод send?

Аналогичная проблема была связана с HttpWebRequest (подробности здесь ) - по какой-то причине она может быть связана с данными, которые вызагрузка.Хотите поделиться URL?

0 голосов
/ 10 марта 2011

Вы можете попробовать подключить обработчик событий перед заказом загрузки.

...