Net 4.5では、次のようなプロキシを使用しています。
<system.net>
<!-- -->
<defaultProxy enabled="true" useDefaultCredentials="false">
<proxy usesystemdefault="True" proxyaddress="http://192.168.1.1:8888" bypassonlocal="True" autoDetect="False" />
<module type="CommonLibrary.Proxy.MyProxy, CommonLibrary, Version=1.0.0.0, Culture=neutral" />
</defaultProxy>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true" />
<servicePointManager expect100Continue="false" />
</settings>
</system.net>
しかし、asp.netのコアまたはテストでは、上記のようなソリューションは見つかりませんでした。誰か助けてください。
本当にありがとうございます
ありがとうございます。それでは、お元気で
HttpClientHander
を使用できる場合はプロキシを手動で設定できますが、.NET Frameworkでできるように、コードなしですべてのリクエストをデフォルトに設定することはできません。この機能を公開していないライブラリを使用している場合、これは残念です。
ありがたいことに、.NET Core 3.0から、これは環境変数を設定するだけで可能になります(つまり、Linuxが永遠に機能していたように動作します): https://github.com/dotnet/corefx/issues/37187
または、 https://github.com/dotnet/corefx/issues/3655DefaultWebProxy
に新しい静的HttpClient
プロパティを追加して、同じことを実現できるようにしましたコードを介して。これはCore 3.0でも利用可能になります。
.netコアでHTTPプロキシを使用するには、IWebProxy
インターフェイスを実装する必要があります。これはSystem.Net.Primitives.dll
アセンブリからのものです。まだない場合は、project.json
に追加できます
例えば.
"frameworks": {
"dotnet4.5": {
"dependencies": {
"System.Net.Primitives": "4.3.0"
}
}
}
実装は非常に簡単です
public class MyHttpProxy : IWebProxy
{
public MyHttpProxy()
{
//here you can load it from your custom config settings
this.ProxyUri = new Uri(proxyUri);
}
public Uri ProxyUri { get; set; }
public ICredentials Credentials { get; set; }
public Uri GetProxy(Uri destination)
{
return this.ProxyUri;
}
public bool IsBypassed(Uri Host)
{
//you can proxy all requests or implement bypass urls based on config settings
return false;
}
}
var config = new HttpClientHandler
{
UseProxy = true,
Proxy = new MyHttpProxy()
};
//then you can simply pass the config to HttpClient
var http = new HttpClient(config)
チェックアウト https://msdn.Microsoft.com/en-us/library/system.net.iwebproxy(v = vs.100).aspx
ミドルウェアを使用する必要があります。これを見ましたか:
https://github.com/aspnet/Proxy
「samples」フォルダーがあります: https://github.com/aspnet/Proxy/tree/dev/samples/Microsoft.AspNetCore.Proxy.Samples
トピックに関するその他のリソース: http://josephwoodward.co.uk/2016/07/proxying-http-requests-asp-net-core-using-kestrel
http://overengineer.net/creating-a-simple-proxy-server-middleware-in-asp-net-core
ミドルウェアは機能しますか?