首页 > 其他分享 >TidHTTP的post编码,老掉牙的问题

TidHTTP的post编码,老掉牙的问题

时间:2023-09-21 11:33:09浏览次数:46  
标签:老掉牙 Request TidHTTP RequestBody json idhtp1 post nurse

TidHTTP使用post时,需要提交json字符串。

那么采用什么编码,这个问题就头大了。目前xe已经不要考虑编码转换问题。但是....

我们使用ISuperObject操控json。那么最后提交到post的数据应该是这样?

idHttp.post(urURL,stream)

idhtp1.Post('http://123.124.211.113:9050/myMoth',RequestBody);
==================================
RequestBody是StringStream,具体内容如下才能成功:
'{"biz_content":"{\"nurse_code\":\"230704100523655950\",\"nurse_name\":\"\u5f20\u65e9\u65e9\",\"org_id\": \"1681123936592465920\",\"delete_flag\":\"0\"}","time":"1695139471","sign":"CF8D24967B933104C7B9C74A22249CAB"}'

http接收到改请求数据后会转换成:
{"biz_content": "{\"nurse_code\":\"230704100523655950\",\"nurse_name\": \"张早早\",\"org_id\": \"1681123936592465920\",\"delete_flag\": \"0\"}",    "time": "1695139471",    "sign": "CF8D24967B933104C7B9C74A22249CAB"}
如此能成功post。

你问我怎么知道。

1、使用firefox安装restClient(?)扩展件。然后就可以如同postman一样进行提交数据,以确认正确的姿势。

 2、使用你的exe提交post,不知道数据长成什么样,不要紧使用这玩意抓包。

 

 核对你提交的数据。

最后确定你应该使用:

RequestBody := TStringStream.create(jo.asjson);//而不是jo.asString
tmpstr1 := idhtp1.Post('http://urMeth',RequestBody);
idhtp1.Request.ContentType := 'application/json'; idhtp1.Request.CustomHeaders.Values['secret'] := '1681123936592465920'; idhtp1.HandleRedirects := True; idhtp1.Request.ContentType := 'application/json'; idhtp1.Request.Accept := 'application/json';

 

标签:老掉牙,Request,TidHTTP,RequestBody,json,idhtp1,post,nurse
From: https://www.cnblogs.com/usegear/p/17719514.html

相关文章

  • postgresql的insert语句中进行判断,数据已有则更新,数据没有则插入
    INSERT操作INSERTINTOtable_name(column1,column2,...)VALUES(value1,value2,...);下面是一个示例:INSERTINTOemployee(id,name,salary)VALUES(1,'JohnDoe',5000); INSERT或UPDATE操作在执行insert的时候进行判断,根据情况进行insert或者update操作,......
  • 后端发送Post请求
    publicstaticstringDoPostByADK(stringurl,stringjsonData,stringtoken){//发送Post请求try{ServicePointManager.ServerCertificateValidationCallback=newSystem.Net.Security.RemoteCertificateValidationCallback(Ch......
  • 功能强大的PostgreSQL没有MySQL流行的10个原因
    以下内容是根据玖章算术CEO叶正盛在「3306π数据库朋友圈」技术演讲整理。文末附完整的PPT下载链接!MySQL与PostgreSQL都是非常优秀并且非常成功的数据库,PostgreSQL的功能比MySQL强大,但是依然没有MySQL流行,作者从产品功能、技术架构、生态、品牌商业几方面来分析原因。影响......
  • Postman设置全局变量、参数传递、断言
    搬砖地址:https://blog.csdn.net/lzz718719/article/details/129671324 ......
  • SpringMVC - 1( 了解 + postman 工具 + 请求与响应 + Rest 风格 )
    SpringMVC目录SpringMVCSpringMVC概述SpringMVC入门案例案例制作工作流程解析启动服务器初始化过程单次请求过程bean加载控制问题分析思路分析环境准备bean加载控制PostMan工具的使用PostMan简介PostMan安装保存当前请求请求与响应设置请求映射路径环境准备问题分析设置映......
  • Troubleshooting:Helm postgres cannot create director
    helminstallpostgres报错如下:postgresql12:12:18.62postgresql12:12:18.62WelcometotheBitnamipostgresqlcontainerpostgresql12:12:18.62Subscribetoprojectupdatesbywatchinghttps://github.com/bitnami/bitnami-docker-postgresqlpostgres......
  • DevOps&Apipost
    DevOps旨在通过自动化流程和改善协作,实现软件开发、测试和交付的一体化,从而提高软件交付的质量和速度。为了提高工作效率,加快软件的交付流程,越来越多企业的选择DevOps工作流程。其中API管理的地位非常重要。随着API数量的大幅增长,也带来了新的API管理需求。如何在DevOps工作......
  • KingbaseES数据库安装PostGIS扩展GEOSUnaryunionPrec错误
    一、问题现象:KingbaseESV008R006C007B0012数据库集群安装PostGIS扩展插件报错。createextensionpostgis;ERROR:couldnotloadiibrary"/opt/kingbase/cluster/kingbase/lib/postgis-3.so”:/opt/kingbase/cluster/kingbase/lib/postgis-3.so:undefinedsymbo1:GEOSUnar......
  • DevOps&Apipost
    DevOps旨在通过自动化流程和改善协作,实现软件开发、测试和交付的一体化,从而提高软件交付的质量和速度。为了提高工作效率,加快软件的交付流程,越来越多企业的选择DevOps工作流程。其中API管理的地位非常重要。随着API数量的大幅增长,也带来了新的API管理需求。如何在DevOps......
  • oracle to polardb-o (postgresql) dblink创建步骤
    一、架构图本质上polardb-o的底层是postgresql数据库,因此该需求可以转换为创建 oracleto postgresql的dblink。1. 原理图 2.实际架构 下面为实际创建步骤二、安装依赖包yuminstall-yunixODBCyuminstall-yunixODBC-develyuminstall-ylibtoolyuminstall-ylib......