首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WebApi实现代理Http请求

h5调用第三方api时候经常遇到不允许跨域的问题,用webapi实现一个代理http接口,方便进行跨域请求。

using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Web.Http; using YFAPICommon.Models; namespace YFAPICommon.Controllers { public class HttpInput { public string url { set; get; } public Dictionary param { set; get; } } public class HttpProxyController : ApiController { public object doPost(HttpInput input) { if (string.IsNullOrWhiteSpace(input.url)) return ReturnNode.ReturnError("url不能为空"); if (input.param == null) input.param = new Dictionary(); string result = Post(input.url,input.param); if (result != null) { try { JObject obj = JsonConvert.DeserializeObject(result); return obj; } catch (Exception ex) { } } return result; } public object doGet(HttpInput input) { if (string.IsNullOrWhiteSpace(input.url)) return ReturnNode.ReturnError("url不能为空"); if (input.param == null) input.param = new Dictionary(); string result = Get(input.url); if (result != null) { try { JObject obj = JsonConvert.DeserializeObject(result); return obj; } catch (Exception ex) { } } return result; } private static string Post(string url, Dictionary param) { using (HttpClient client = new HttpClient()) { //请求超时 //client.Timeout = new TimeSpan(5000); var httpContent = new StringContent(JsonConvert.SerializeObject(param)); httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var response = client.PostAsync(url, httpContent).Result; var responseValue = response.Content.ReadAsStringAsync().Result; if (response.StatusCode == System.Net.HttpStatusCode.OK) { return responseValue; } return null; } } private static string Get(string url) { var request = (HttpWebRequest)WebRequest.Create(url); var response = (HttpWebResponse)request.GetResponse(); var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); if (response.StatusCode == System.Net.HttpStatusCode.OK) { return responseString; } return null; } } }

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230313A03XBR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券