再谈Delphi XE的System.Net.HttpClientComponent、System.Net.HttpClient、System.Net.URLClient

再谈Delphi XE的System.Net.HttpClientComponent、System.Net.HttpClient、System.Net.URLClient

一、继承关系

    System.Net.HttpClientComponent  ->    TNetHTTPClient.Create(nil);  

    ->   System.Net.HttpClient   

    System.Net.HttpClient                    ->    THTTPClient.Create;

    ->   System.Net.URLClient                                                        

    System.Net.URLClient                    ->    THTTPClient(TURLSchemes.GetURLClientInstance('HTTP'));

                                                           ->    : TURLClient;

二、TURLClient.Create自动获取默认值

constructor TURLClient.Create;
begin
  inherited;

 
  1.   FCustomHeaders := [TNetHeader.Create(sUserAgent, DefaultUserAgent)];

  2.   FInternalCredentialsStorage := TCredentialsStorage.Create;

  3.   FInstances := TObjectDictionary<string, TURLClient>.Create;

  4.   FCredentialsStorage := FInternalCredentialsStorage;

  5.   FConnectionTimeout := DefaultConnectionTimeout;

  6.   FResponseTimeout := DefaultResponseTimeout;


end;

其中:

 
  1.   public const

  2.     DefaultConnectionTimeout = 60000;

  3.     DefaultResponseTimeout = 60000;

-----------> System.NetConsts

 
  1.  
  2. const

  3. DefaultUserAgent = 'Embarcadero URI Client/1.0'; // Do not translate

  4.  
  5. // Common Header Names

  6. sUserAgent = 'User-Agent'; // Do not translate

  7. sAccept = 'Accept'; // Do not translate

  8. sAcceptCharset = 'Accept-Charset'; // Do not translate

  9. sAcceptEncoding = 'Accept-Encoding'; // Do not translate

  10. sAcceptLanguage = 'Accept-Language'; // Do not translate

  11. sAcceptRanges = 'Accept-Ranges'; // Do not translate

  12. sContentEncoding = 'Content-Encoding'; // Do not translate

  13. sContentLanguage = 'Content-Language'; // Do not translate

  14. sContentLength = 'Content-Length'; // Do not translate

  15. sContentType = 'Content-Type'; // Do not translate

  16. sLastModified = 'Last-Modified'; // Do not translate

  17. sContentDisposition = 'Content-Disposition'; // Do not translate

  18.  
  19. sLocation = 'Location'; // Do not translate

  20. sSetCookie = 'Set-Cookie'; // Do not translate

  21. sCookie = 'Cookie'; // Do not translate

  22.  
  23. sRange = 'Range'; // Do not translate

  24.  
  25. sXMethodOverride = 'x-method-override'; // Do not translate

  26.  
  27. sWWWAuthenticate = 'WWW-Authenticate'; // Do not translate

  28. sProxyAuthenticate = 'Proxy-Authenticate'; // Do not translate

  29. sAuthorization = 'Authorization'; // Do not translate

  30. sProxyAuthorization = 'Proxy-Authorization'; // Do not translate

例如 :

 
  1. TNetHTTPClient.ConnectionTimeout := 5000; // 5秒

  2. TNetHTTPClient.ResponseTimeout := 10000; // 10秒

  3. TNetHTTPClient.AcceptCharSet := 'utf-8';

  4. TNetHTTPClient.AcceptEncoding:='65001';

  5. TNetHTTPClient.AcceptLanguage:='zh-CN';

  6. TNetHTTPClient.ContentType := 'text/html';

  7. TNetHTTPClient.UserAgent := 'Embarcadero URI Client/1.0';

 

三、相关文章:

1、delphi XE Restful:RestClien案例RESTDebugger.dproj和RESTDemos.dproj的调用参数及格式设置:  https://blog.csdn.net/pulledup/article/details/104242744

2、delphi Restful:客户端实现的四种方式及其比较:https://blog.csdn.net/pulledup/article/details/104132753

3、delphi XE应用Restful时Rest组件的delphi XE ContentType即delphi XE mime type怎样获取和表达:

https://blog.csdn.net/pulledup/article/details/105408763

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值