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 服务)的主要内容,如果未能解决你的问题,请参考以下文章
使用 JQuery 访问 ASP.net Web 服务时出错 - JSONP