当前位置: 首页 > 编程语言 > C#

如何将webapi作为web服务使用?分享

时间:2023-04-11 02:04:40 C#

如何使用webapi作为web服务?我已经创建了一个测试ASP.NetWebApi,现在我想知道如何将它用作Windows窗体应用程序中的Web服务?当前url是http://localhost:59682,当我添加http://localhost:59682或http://localhost:59682/api/或http://localhost:59682/api/products/作为Web服务参考时收到此错误:下载“http://localhost:59682/api/products/$metadata”时出错。请求失败,HTTP状态为400:错误请求。元数据包含无法解析的引用:“http://localhost:59682/api/products/”。远程服务器返回意外响应:(405)方法不允许。远程服务器返回错误:(405)方法不允许。如果服务是在当前解决方案中定义的,请尝试构建解决方案并再次添加服务引用。下载“http://localhost:59682/api/products/$metadata”时出错。请求失败,HTTP状态为400:错误请求。元数据包含无法解析的引用:'http://localhost:59682/api/products/'.远程服务器返回意外响应:(405)方法不允许。远程服务器返回错误:(405)方法不允许。如果服务是在当前解决方案中定义的,请尝试构建解决方案并再次添加服务引用。这是我的web.config:这是我的ProductsControllerusingSystem;使用System.Collections.Generic;使用System.Linq;使用System.Net;使用System.Net.Http;使用System.Web.Http;使用WebApiLearning.Models;namespaceWebApiLearning.Controllers{publicclassProductsController:ApiController{Product[]products=newProduct[]{newProduct{Id=1,Name="TomatoSoup",Category="Groceries",Price=1.39M},newProduct{id=2,Name="Yo-yo",Category="Toys",Price=3.75M},newProduct{id=3,Name="Hammer",Category="Hardware",Price=16.99M}};publicIEnumerableGetAllProducts(){返回产品;}publicProductGetProductById(intid){varproduct=products.FirstOrDefault((p)=>p.Id==id);if(product==null){varresp=newHttpResponseMessage(HttpStatusCode.NotFound);抛出新的HttpResponseException(resp);}返回产品;}publicIEnumerableGetProductsByCategory(stringcategory){returnproducts.Where((p)=>string.Equals(p.Category,category,StringComparison.OrdinalIgnoreCase));}}}这是产品模型:使用系统;使用System.Collections.Generic;使用System.Linq;使用System.Web;namespaceWebApiLearning.Models{publicclassProduct{publicintId{get;放;}公共字符串名称{得到;放;}公共字符串类别{得到;放;}publicdecimalPrice{get;调用方法)我建议你安装WebAPI客户端库看看下面的链接http://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from-a-net-以上是C#学习教程:如何将webapi作为web服务使用?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: