ASP.NET 帮助(使用公共 Web 服务)

Posted

技术标签:

【中文标题】ASP.NET 帮助(使用公共 Web 服务)【英文标题】:ASP.NET help (consuming a public Web Service) 【发布时间】:2015-04-21 12:42:56 【问题描述】:

所以我是创建 ASP.NET 的新手,我必须使用 Spotify 构建一个 asp.net 站点。本质上,我必须要求用户输入艺术家姓名并使用 Spotify 的端点 (https://developer.spotify.com/web-api/endpoint-reference/) 来获取和返回数据。然后我必须解析数据并将其排序到一个表格中,以对艺术家姓名、专辑、年份等进行排序。所以,作为参考,我只想知道我应该去哪里学习如何完成这个?

谢谢

【问题讨论】:

【参考方案1】:

您引用的 API 是一个 REST API,这意味着只要您可以发送 HTTP 请求并使用响应,您就可以使用该 API。

您可以使用 HTTPClient 对象来执行此操作,有关如何发送 get 请求的示例,请参阅 MSDN。归结为:

var  httpClient = new HttpClient();
var response = httpClient.GetAsync(".../v1/albums/myalbumid");
response.EnsureSuccessStatusCode();
responseBodyAsText = await response.Content.ReadAsStringAsync();

注意上面的代码 sn-p 使用的是异步版本的东西,如果你愿意,你可以使用非异步的。

然后您可以使用json.net 来解析 responseBodyAsText 并使用LINQ to JSON 来读取您感兴趣的 json 属性,或者您可以定义一个强类型对象,该对象与您直接从 spotify 和 deserialzie 获得的响应相对应到那个对象。

您可以使用存储过程或 INSERT 语句将数据插入到您的数据库中:

using(var con = new SqlConnection("connectionstring"))
using(var cmd = new SqlCommand("INSERT INTO TABLE OR RUN A SPROC", con))
    cmd.Parameters.AddWithValue("AlbumName", myAlbumName");
    con.open();
    cmd.ExecuteNonQuery();

对于您的应用程序框架(假设它是基于 Web 的),您可以使用 Web Forms 或 Web API(其余)或 MVC,无论您喜欢哪个。

希望这有助于您入门。

请注意这里提供的代码只是一个示例,很可能包含错误并且无法编译。

【讨论】:

github.com/djhmateer/githubscratch/tree/master/… 这是一个工作版本,只是调用 spotify(非异步)

以上是关于ASP.NET 帮助(使用公共 Web 服务)的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Web Api 和数据协定

ASP.NET 页面方法与 Web 服务

使用 JQuery 访问 ASP.net Web 服务时出错 - JSONP

ASP NET 是啥?

试图保护网站但同时保持主页(索引)页面公共 MCV5 asp.net 身份

在 asp.net c# 中创建 iPhone 推送通知 Web 服务