簡體   English   中英

Azure 功能 / API:如何創建代理

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM