德尔福印地 http 选项

标签 delphi indy http-options-method

我想使用 HTTP 选项

OPTIONS /MyURL/DoCmd HTTP/1.1
Origin: http://www.asite.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: access-control-request-method

用 Indy 制作这个的方法是什么?

FIdHttp.Options('http://' + FHost + ':' + IntToStr(FPort) + '/MyURL/DoCmd', AResponseContent);

如果服务器没有实现 OPTIONS 会发生什么?

最佳答案

What is the way to make this with Indy ?

TIdHTTP Indy 10 有 2 个重载 Options()方法:

procedure Options(AURL: string; AResponseContent: TStream); overload;

function Options(AURL: string
  {$IFDEF STRING_IS_ANSI}; ADestEncoding: IIdTextEncoding = nil{$ENDIF}
  ): string; overload;

什么TIdHTTP Origin 没有 native 属性和Access-Control-Request-... header 。但是,您可以使用TIdHTTP.Request.CustomHeaders那些的属性(property),例如:

FIdHttp.Request.CustomHeaders.Values['Origin'] := 'http://www.asite.com';
FIdHttp.Request.CustomHeaders.Values['Access-Control-Request-Method'] := ' POST';
FIdHttp.Request.CustomHeaders.Values['Access-Control-Request-Headers'] := 'access-control-request-method';
FIdHttp.ProtocolVersion := pv1_1;

Response := FIdHttp.Options('http://www.asite.com/MyURL/DoCmd');
or
FIdHttp.Options('http://www.asite.com/MyURL/DoCmd', AResponseContent);

What will happen if the OPTIONS is not implemented by the server ?

服务器可能会返回一个错误代码,其中 TIdHTTP将筹集资金为 EIdHTTPProtocolException除非您启用hoNoProtocolErrorException,否则异常(exception)标志在 TIdHTTP.HTTPOptions属性。

关于德尔福印地 http 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42630741/

相关文章:

delphi - 如何将坐标保持在屏幕范围内?

delphi - EIdOSSLUnderlyingCryptoError 异常

http - 我应该如何表明我的 HTTP 服务器支持压缩请求?

ios - Delphi XE4 iOS图标

delphi - 为什么 Delphi 没有在正确的文件夹中输出 DCU 文件?

delphi - Indy TIdSSLIOHandlerSocketOpenSSL - 它可以在我的电脑上运行,但不能在我 friend 的电脑上运行

android - Delphi XE5 TIdUDPServer 在 Android 上收不到任何东西

http - 如何在 AngularJS 中执行 HTTP 选项请求?

java - 配置 Spring MVC 以将 GET 请求映射到 Controller 中的一个方法,并将 OPTIONS 请求映射到另一个方法

delphi - 为什么在我的程序开始之前 GetLastError 出现错误?