HttpConfigExtensions.cs 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. //------------------------------------------------------------------------------
  2. // 此代码版权(除特别声明或在XREF结尾的命名空间的代码)归作者本人若汝棋茗所有
  3. // 源代码使用协议遵循本仓库的开源协议及附加协议,若本仓库没有设置,则按MIT开源协议授权
  4. // CSDN博客:https://blog.csdn.net/qq_40374647
  5. // 哔哩哔哩视频:https://space.bilibili.com/94253567
  6. // Gitee源代码仓库:https://gitee.com/RRQM_Home
  7. // Github源代码仓库:https://github.com/RRQM
  8. // API首页:https://www.yuque.com/rrqm/touchsocket/index
  9. // 交流QQ群:234762506
  10. // 感谢您的下载和使用
  11. //------------------------------------------------------------------------------
  12. //------------------------------------------------------------------------------
  13. using TouchSocket.Core;
  14. using TouchSocket.Http;
  15. namespace TouchSocket.Sockets
  16. {
  17. /// <summary>
  18. /// HttpConfigExtensions
  19. /// </summary>
  20. public static class HttpConfigExtensions
  21. {
  22. #region 创建
  23. /// <summary>
  24. /// 构建Http类客户端,并连接
  25. /// </summary>
  26. /// <typeparam name="TClient"></typeparam>
  27. /// <param name="config"></param>
  28. /// <returns></returns>
  29. public static TClient BuildWithHttpClient<TClient>(this TouchSocketConfig config) where TClient : IHttpClient
  30. {
  31. TClient client = config.Container.Resolve<TClient>();
  32. client.Setup(config);
  33. client.Connect();
  34. return client;
  35. }
  36. /// <summary>
  37. /// 构建Http类客户端,并连接
  38. /// </summary>
  39. /// <param name="config"></param>
  40. /// <returns></returns>
  41. public static HttpClient BuildWithHttpClient(this TouchSocketConfig config)
  42. {
  43. return BuildWithHttpClient<HttpClient>(config);
  44. }
  45. /// <summary>
  46. /// 构建Http类服务器,并启动。
  47. /// </summary>
  48. /// <typeparam name="TService"></typeparam>
  49. /// <param name="config"></param>
  50. /// <returns></returns>
  51. public static TService BuildWithHttpService<TService>(this TouchSocketConfig config) where TService : IHttpService
  52. {
  53. TService service = config.Container.Resolve<TService>();
  54. service.Setup(config);
  55. service.Start();
  56. return service;
  57. }
  58. /// <summary>
  59. /// 构建Http类服务器,并启动。
  60. /// </summary>
  61. /// <param name="config"></param>
  62. /// <returns></returns>
  63. public static HttpService BuildWithHttpService(this TouchSocketConfig config)
  64. {
  65. return BuildWithHttpService<HttpService>(config);
  66. }
  67. #endregion 创建
  68. /// <summary>
  69. /// Http代理
  70. /// </summary>
  71. public static readonly DependencyProperty<HttpProxy> HttpProxyProperty =
  72. DependencyProperty<HttpProxy>.Register("HttpProxy", typeof(HttpConfigExtensions), null);
  73. /// <summary>
  74. ///设置Http代理
  75. /// </summary>
  76. /// <param name="config"></param>
  77. /// <param name="value"></param>
  78. /// <returns></returns>
  79. public static TouchSocketConfig SetHttpProxy(this TouchSocketConfig config, HttpProxy value)
  80. {
  81. config.SetValue(HttpProxyProperty, value);
  82. return config;
  83. }
  84. }
  85. }