[英]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.