Asp.net WebApi HttpClient强类型PostAync
发布时间:2020-12-16 03:27:27 所属栏目:asp.Net 来源:网络整理
导读:我想发布到Asp.Net WebApi Post方法: // POST /api/citycodepublic HttpResponseMessageCityCode Post(CityCode citycode){ try { Test.SelfTrackingEntities.BusinessLayer.BusinessManagers.CityCodeManager myCityCodeManager = new CityCodeManager(Uti
我想发布到Asp.Net WebApi Post方法:
// POST /api/citycode public HttpResponseMessage<CityCode> Post(CityCode citycode) { try { Test.SelfTrackingEntities.BusinessLayer.BusinessManagers.CityCodeManager myCityCodeManager = new CityCodeManager(Utility.GetConnectionString()); var id = myCityCodeManager.Create(citycode); var response = new HttpResponseMessage<Test.SelfTrackingEntities.BusinessLayer.BusinessEntities.CityCode>(citycode) { StatusCode = HttpStatusCode.Created }; response.Headers.Location = new Uri(VirtualPathUtility.AppendTrailingSlash(Request.RequestUri.ToString()) + citycode.Name); return response; } catch (Exception e) { var response = new HttpResponseMessage(HttpStatusCode.Conflict); response.Content = new StringContent(e.Message); throw new HttpResponseException(response); } } 客户电话是: var objectContent = CreateJsonObjectContent(citycode); objectContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"); var requestMessage = new HttpRequestMessage<CityCode>(citycode,jsonMediaType); return httpClient.PostAsync(addressSuffix,objectContent).ContinueWith(task => { var responseMessage = task.Result; return responseMessage.Content.ReadAsAsync<CityCode>().ContinueWith(readTask => { return readTask.Result; }); }).Unwrap(); 但是服务器从不接收调用,我使用的是JsonNetFormatter而不是内置的格式化程序. 解决方法
你试过HttpClient(
http://msdn.microsoft.com/en-us/library/system.net.http.httpclient(v=vs.110).aspx)吗?
这是一个出色的HTTP客户端,可以使用MVC 4 Web Api.看看这个: var config = new HttpConfiguration(); config.Routes.MapHttpRoute("default","api/{controller}/{id}",new { id = RouteParameter.Optional }); var server = new HttpServer(config); var client = new HttpClient(server); dynamic s = new ExpandoObject(); s.comeValue = 1; var d = JsonConvert.SerializeObject(s); var content = new StringContent(d,Encoding.UTF8,"application/json"); var postResult = client.PostAsync("http://localhost:29722/api/whatevercontroller",content).Result; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 赋予ASP.NET Web应用程序网络服务帐户读/写权限的
- RSS2.0中文规范详解及示例
- asp.net – 使用NLog记录当前页面的URL
- asp.net-mvc-4 – ASP.NET MVC 4 ScriptBundle返
- js或css文件合并的三种方式推荐
- asp.net-mvc-3 – 实体框架,MVC 3,LINQ To Entit
- asp.net-mvc – 如何防止EnumDropDownListFor将0
- asp.net – AjaxFileUpload不会触发OnUploadComp
- asp.net-mvc – 将EF 4.1代码首先将ASP.NET MVC3
- asp.net – Web浏览器进入kiosk模式
热点阅读