delphi 调用编码格式为application/x-www-form-urlencoded

博客提及在Delphi XE10.3测试环境中添加Authorization。Delphi是一种开发语言,此操作可能与开发测试相关,涉及信息技术领域的开发测试流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//原始信息
curl --request POST \   
       --url https:****************** \   
       --header 'Content-Type: application/x-www-form-urlencoded' \   
       --data grant_type=client_******** \   
       --data client_id=************ \   
       --data client_secret=***************
procedure TForm1.Button1Click(Sender: TObject);
var
  Send_发送数据: TSTringList;
  Ret_答复数据流: TStringStream;
  Ret_答复字符串: string;
begin
  Send_发送数据 := TStringList.Create;
  Ret_答复数据流 := TStringStream.Create;
  try
    NetHTTPClient1.ContentType :=
      'application/x-www-form-urlencoded; charset=UTF-8';
    //提交的数据
    Send_发送数据.Add('grant_type=client_**********');
    Send_发送数据.Add('client_id=*************');
    Send_发送数据.Add('client_secret=**********');

        //多行可以填加
    NetHTTPClient1.Post('https://*******************',
      Send_发送数据, Ret_答复数据流);
        //获取网页返回的信息
    Ret_答复字符串 := Ret_答复数据流.DataString;
    Ret_答复字符串 := UTF8Decode(Ret_答复字符串);
    Memo1.Text := Ret_答复字符串;
  finally
    Ret_答复数据流.Free;
    Send_发送数据.Free;
  end;
end;

-------------添加Authorization

NetHTTPClient.CustomHeaders['Authorization']:='Bearer ************';

测试环境:delphi xe10.3

### 如何在 Delphi 中进行 HTTPS 调用 为了实现 HTTPS 请求,在 Delphi 应用程序中通常会使用 Indy 组件库中的 `TIdHTTP` 类来发送 HTTP 和 HTTPS 请求。下面是一个简单的例子,展示了如何通过 SSL/TLS 进行安全连接并执行 GET 或 POST 请求。 #### 使用 TIdHTTP 发起 HTTPS 请求 首先需要确保项目包含了 Indy 的单元文件: ```delphi uses IdHTTP, IdSSLOpenSSL; ``` 接着可以创建一个函数来进行基本的 HTTPS GET 请求: ```delphi function GetHttpsContent(const AUrl: string): string; var Http: TIdHTTP; SslHandler: TIdSSLIOHandlerSocketOpenSSL; begin Result := ''; try Http := TIdHTTP.Create(nil); try // 创建 OpenSSL 处理器用于处理加密通信 SslHandler := TIdSSLIOHandlerSocketOpenSSL.Create(Http); // 将处理器分配给 TIdHTTP 实例 Http.IOHandler := SslHandler; // 执行请求并将响应保存到返回值中 Result := Http.Get(AUrl); finally FreeAndNil(Http); end; except on E: Exception do Writeln('Error occurred during request:', E.Message); end; end; ``` 对于 POST 请求,则可以通过设置参数并通过 `Post()` 方法传递数据: ```delphi procedure PostDataToServer(const AUrl: string; const Params: TStringList); var Http: TIdHTTP; ResponseText: string; SslHandler: TIdSSLIOHandlerSocketOpenSSL; begin Http := nil; try Http := TIdHTTP.Create(nil); SslHandler := TIdSSLIOHandlerSocketOpenSSL.Create(Http); Http.IOHandler := SslHandler; // 设置自定义头部信息 (如果必要的话) Http.Request.ContentType := 'application/x-www-form-urlencoded'; // 提交表单数据至服务器端口 ResponseText := Http.Post(AUrl, Params); WriteLn(ResponseText); finally FreeAndNil(SslHandler); FreeAndNil(Http); end; end; ``` 需要注意的是,上述代码假设已经安装了适用于 Windows 平台上的 OpenSSL 动态链接库(DLLs),这些 DLL 文件应该放置于应用程序所在的目录下或者是系统的 PATH 环境变量所指向的位置之一[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值