从 Nuget.Server 获取 Json 而不是 XML

Get Json instead of XML from Nuget.Server

我已经设置了一个 Nuget.Server 来托管私人 nuget 提要。我正在尝试通过 API 访问该提要,但是我无法说服它给我 json 而不是 XML。

我的客户端代码如下:

HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var packagesResult = client.GetAsync("http://localhost:61654/nuget/FindPackagesById()?id=\'Moq'").Result;

Console.WriteLine(packagesResult.Content.ReadAsStringAsync().Result);

我检查了 App_Start

中的格式化程序
GlobalConfiguration.Configuration.Formatters

有四个格式化程序,第一个是 json。

如何让 API 变为 return json 而不是 XML?

你的代码没有问题。但是,您似乎正在调用仅支持 XML 的 Nuget API V2。您可以检查响应内容类型。

Content-Type: application/atom+xml; type=feed; charset=utf-8

如果您想将 API 改为 return JSON 而不是 XML,请使用 Nuget API V3。

API 定义:https://api.nuget.org/v3/index.json

样本:https://api.nuget.org/v3/registration3/moq/index.json