在 windows 应用程序中处理 JSONP 响应

Handling JSONP response in windows application

我有一个 ASP.NET Web API 2 项目已设置为 return JSONP (使用来自 GitHub (https://github.com/WebApiContrib) 的 ASP.NET Web API Contrib 存储库),现在当使用 API 通过jQuery.

然而,还有一个 windows 应用程序需要访问相同的数据,但我完全不知道如何在 c# class.[=13 中处理响应=]

我有这段代码,当 API returned plain JSON:

时,它运行良好(使用 JSON.NET)
    public List<DropItem> GetAvailableDomains()
    {
        string jsonData = null;

        using (WebClient wc = new WebClient())
        {
            jsonData = wc.DownloadString("http://foo.bar/api/core/getavailabledomains");
        }

        return JsonConvert.DeserializeObject<List<DropItem>>(jsonData);
    }

但是,使用 JSONP 它根本无法识别响应数据,因为响应中包含回调函数等的开销。

有什么好的处理方法吗?

成功了

    public static void RegisterFormatters(MediaTypeFormatterCollection formatters)
    {
        var jsonp = new JsonpMediaTypeFormatter(formatters.JsonFormatter);
        jsonp.MediaTypeMappings.Add(new QueryStringMapping("type", "jsonp", "application/json"));

        GlobalConfiguration.Configuration.Formatters.Add(jsonp);
        GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping("type", "json", "application/json"));
    }