C# 如何从特定代理服务器重定向对API的调用?

C# 如何从特定代理服务器重定向对API的调用?,c#,proxy,asp.net-core-webapi,C#,Proxy,Asp.net Core Webapi,我有一个API,我只想从我的一个代理服务器访问它。因为该服务器已授予访问该特定API的所有访问权限。所以我有一个端点 我有代理服务器URL和端口,我想在我的应用程序设置文件中添加代理设置并实现它,这样当调用API时,特定的调用将通过代理服务器传递 请帮助我如何实现这一点 当前对API的调用如下 PushMessageAndroidRequest req = new PushMessageAndroidRequest();

我有一个API,我只想从我的一个代理服务器访问它。因为该服务器已授予访问该特定API的所有访问权限。所以我有一个端点

我有代理服务器URL和端口,我想在我的应用程序设置文件中添加代理设置并实现它,这样当调用API时,特定的调用将通过代理服务器传递

请帮助我如何实现这一点

当前对API的调用如下

                            PushMessageAndroidRequest req = new PushMessageAndroidRequest();
                            req.registration_ids = list.Select(x => x.Token).ToList();
                            req.data = new AndroidData() { Payload = CommonLib.ConvertObjectToJson(payload) };

                            response = await RequestHandler.PostDataAsync<PushMessageResponse>(_appConfig.pushMessageConfigs.Url, req, new List<KeyValue>() { new KeyValue("Authorization", "key=" + _appConfig.pushMessageConfigs.Key) });
PushMessageAndroidRequest请求=新的PushMessageAndroidRequest();
req.registration_id=list.Select(x=>x.Token.ToList();
req.data=newandroiddata(){Payload=CommonLib.ConvertObjectToJson(Payload)};
response=wait RequestHandler.PostDataAsync(_appConfig.pushMessageConfigs.Url,req,new List(){new KeyValue(“Authorization”,“key=”+_appConfig.pushMessageConfigs.key)});
已编写的示例代码

 public static async Task<ResJsonOutput> ProxyDataAsync(string ApiPath,string obj, List<KeyValue> Headers = null)
        {
            ResJsonOutput result = new ResJsonOutput();
            HttpResponseMessage response = new HttpResponseMessage();
            var requestUri = string.Format(ApiPath);
            var request = (HttpWebRequest)WebRequest.Create(requestUri);

                WebProxy myproxy = new WebProxy(Settings.ProxyAddress, Settings.ProxyPort);
                myproxy.BypassProxyOnLocal = false;
                request.Proxy = myproxy;

            using (WebResponse response = request.GetResponse())
            {
                using (StreamReader stream = new StreamReader(response.GetResponseStream()))
                {
                    //JObject jResponse = JObject.Parse(stream.ReadToEnd());
                    //var isSuccess = jResponse.Value<bool>("success");
                    //result = (isSuccess) ? true : false;
                }
            }
            return result;
        }
publicstaticasync任务ProxyDataAsync(字符串ApiPath,字符串obj,列表头=null)
{
ResJsonOutput result=新的ResJsonOutput();
HttpResponseMessage response=新的HttpResponseMessage();
var requestUri=string.Format(ApiPath);
var request=(HttpWebRequest)WebRequest.Create(requestUri);
WebProxy myproxy=新的WebProxy(Settings.ProxyAddress、Settings.ProxyPort);
myproxy.BypassProxyOnLocal=false;
Proxy=myproxy;
使用(WebResponse=request.GetResponse())
{
使用(StreamReader stream=newstreamreader(response.GetResponseStream()))
{
//JObject jResponse=JObject.Parse(stream.ReadToEnd());
//var isSuccess=jResponse.Value(“成功”);
//结果=(isSuccess)?真:假;
}
}
返回结果;
}