Nano Hash - криптовалюты, майнинг, программирование

Ошибка DownloadStrinAsync при разборе в Windows Phone

У меня проблема... Я бы создал приложение, которое соскребает результаты поиска в Google... но когда я пытаюсь использовать загрузкуstringasync, отладка возвращает мне ошибку "Невозможно присвоить 'void' локальной переменной... "

Вы говорите, как я могу это решить?

это код

        public class SearchResult
    {
        public string url;
        public string title;
        public string content;
        public FindingEngine engine;

        public enum FindingEngine { google, bing, google_and_bing };

        public SearchResult(string url, string title, string content, FindingEngine engine)
        {
            this.url = url;
            this.title = title;
            this.content = content;
            this.engine = engine;
        }
    }

public static List<SearchResult> GoogleSearch(string search_expression, 
  Dictionary<string, object> stats_dict)
{
  var url_template = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=large&safe=active&q={0}&start={1}";
  Uri search_url;
  var results_list = new List<SearchResult>();
  int[] offsets = { 0, 8, 16, 24, 32, 40, 48 };
  foreach (var offset in offsets)
  {

    var searchUrl = new Uri(string.Format(url_template, search_expression, offset));
    var page = new WebClient().DownloadStringAsync(searchUrl);
    var o = (JObject)JsonConvert.DeserializeObject(page);

    var results_query =
      from result in o["responseData"]["results"].Children()
      select new SearchResult(
          url: result.Value<string>("url").ToString(),
          title: result.Value<string>("title").ToString(),
          content: result.Value<string>("content").ToString(),
          engine: SearchResult.FindingEngine.google
          );

    foreach (var result in results_query)
      results_list.Add(result);
  }

  return results_list;
}

Спасибо!


Ответы:


1

DownloadStringAsync ничего не возвращает, то есть void, поэтому вы не можете просто присвоить ему переменную.

Вам нужно добавить обработчик событий к DownloadStringCompleted, который будет запущен, когда DownloadStringAsync завершится.

var client = new WebClient();
client.DownloadStringCompleted += client_DownloadStringCompleted;
client.DownloadStringAsync(searchUrl);

static void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) {
  // e.Result will contain the returned JSON. Move the code that parse the result to here.
}
02.06.2013
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..