3

Cognitive Services の Web 検索 API を学びたいので、ボット アプリケーションの作成を開始しました。私はすでにアカウントのサブキーとその他の必要な情報を持っており、多くの記事を読み、これに関するビルド 2016 のビデオも見ています。結果の逆シリアル化中に問題が発生しています。そのために使用できるプロキシ クラスが見つかりません。私が使用している URL はhttps://api.cognitive.microsoft.com/bing/v5.0/search/ で、以前の API バージョンのプロキシ クラスが見つかりました。これらのサービスの VS 2015 で API リクエスト/レスポンスのプロキシ クラスを取得する方法を教えてください。

私のコードは次のようになります。

  string BingSearchUrl =  "https://api.cognitive.microsoft.com/bing/v5.0/search/";
   const string bingKey = "Key";

    public static  async Task<string> Search(string query)
    {
        var client = HttpClientFactory.Create();
        var queryString = BingSearchUrl + "?q=" + query + "&count=10";        
        // Request headers
        client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", bingKey);
        client.DefaultRequestHeaders.Add("Accept", "application/json");

        // Request parameters
        string r = await client.GetStringAsync(queryString);
        var jsonResult = JsonConvert.DeserializeObject<Bing.ExpandableSearchResult>(r);

        return jsonResult.Web.First().Title;
4

2 に答える 2

0

以下のコードを試してください

  public string BingSearchUrl = "https://api.cognitive.microsoft.com/bing/v5.0/search/";
        const string bingKey =[KEY];

        public async void Search()
        {
            var client = new HttpClient();
            var queryString = HttpUtility.ParseQueryString(string.Empty);

            // Request headers
            client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", bingKey);

            // Request parameters
            queryString["q"] = "microsoft";
            queryString["count"] = "10";
            queryString["offset"] = "0";
            queryString["mkt"] = "en-us";
            queryString["safeSearch"] = "Moderate";
            var uri = "https://api.cognitive.microsoft.com/bing/v5.0/news/search?" + queryString;

            var response = await client.GetStringAsync(uri);
            var jsonResult = JsonConvert.DeserializeObject<BingJson>(response);

            string title = jsonResult.value[0].name.ToString();

        }

を使用するjsonResult.value[0]と、結果をループできます。最初の結果は[0]位置にあります。

私はbing検索応答を見るモデルクラスを作成しましたjson。それは、

 public class BingJson
    {
        public string _type { get; set; }
        public Instrumentation instrumentation { get; set; }
        public string readLink { get; set; }
        public int totalEstimatedMatches { get; set; }
        public Value[] value { get; set; }
    }

    public class Instrumentation
    {
        public string pingUrlBase { get; set; }
        public string pageLoadPingUrl { get; set; }
    }

    public class Value
    {
        public string name { get; set; }
        public string url { get; set; }
        public string urlPingSuffix { get; set; }
        public Image image { get; set; }
        public string description { get; set; }
        public About[] about { get; set; }
        public Provider[] provider { get; set; }
        public DateTime datePublished { get; set; }
        public string category { get; set; }
    }

    public class Image
    {
        public Thumbnail thumbnail { get; set; }
    }

    public class Thumbnail
    {
        public string contentUrl { get; set; }
        public int width { get; set; }
        public int height { get; set; }
    }

    public class About
    {
        public string readLink { get; set; }
        public string name { get; set; }
    }

    public class Provider
    {
        public string _type { get; set; }
        public string name { get; set; }
    }
于 2016-07-03T03:09:15.070 に答える