[英]Azure functions / API: How to create a proxy
我正在尝试创建一个将转发我的请求的代理应用程序。
我会这样使用它(适用于一些公共代理):
var proxy = new WebProxy { Address = new Uri("proxyUrl") };
var httpClientHandler = new HttpClientHandler { Proxy = proxy };
var client = new HttpClient(handler: httpClientHandler, disposeHandler: true);
await client.GetAsync("https://www.whatsmyip.org");
我发现了这个和微软的这个指南,但是它们似乎已经过时了,因为函数不能再有代理了。 将鼠标悬停在“代理”上告诉我:“此功能不适用于 V4 功能应用
我发现了这个,它建议使用 API Management 代替。 所以我尝试了。 它看起来像这样:
使用右侧的后端配置,如果我覆盖“服务 URL”,我可以将请求转发到特定的 url:
但我想使用它,如我的第一个代码片段所示,作为适用于任何端点的真正代理。 有什么想法吗?
有/曾经有一个名为 Azure 函数代理的功能。 这用于重定向/修改请求。 但是,即使此功能现在消失了,也不意味着您无法实现将您重定向到另一个网站的功能。
[FunctionName(nameof(Redirect))]
public static IActionResult Redirect(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "redirect")] HttpRequest req,
ILogger log)
{
return new RedirectResult("https://google.com", true);
}
如果您只想为其他 API 调用提供接口,我会推荐 APIM。 但是您也应该能够使用 Functions 返回您想要的任何结果,但是您需要自己完全实现它。
它可能看起来像这样(未经测试)
[FunctionName(nameof(RemoteAPICall))]
public static IActionResult RemoteAPICall(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "proxy")] HttpRequest req,
ILogger log)
{
var response = await client.GetAsync("http://www.wtfismyip.com/json");
return new OkObjectResult(response.Content);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.