网站怎么经营,做网站背景音乐,在线甜品网站开发书,网站关键词排名系统HTTP POST 请求函数 HttpPost
此函数用于发送带有JSON内容的POST请求到指定的URL#xff0c;并接收服务器响应。它包括了必要的异常处理#xff0c;确保在遇到错误时可以记录日志。 参数#xff1a; sUrl#xff1a;目标URL。sJson#xff1a;要发送的JSON格式字符串。 返…HTTP POST 请求函数 HttpPost
此函数用于发送带有JSON内容的POST请求到指定的URL并接收服务器响应。它包括了必要的异常处理确保在遇到错误时可以记录日志。 参数 sUrl目标URL。sJson要发送的JSON格式字符串。 返回值从服务器接收到的响应文本通常也是JSON格式。 关键点 使用 TStringStream 将JSON字符串转换为流以便可以通过 TIdHTTP.Post 方法发送。设置了适当的请求头信息确保服务器知道我们发送的是JSON数据。包含了连接超时设置 (ConnectTimeout) 和字符编码配置 (ContentType, Accept, CharSet)以保证正确的数据传输。异常处理机制确保任何网络或协议错误都能被捕获并记录下来。
HTTP GET 请求函数 HttpGet
此函数用于发起GET请求并获取服务器返回的数据。它的结构与 HttpPost 类似但不需要传递额外的数据体。 参数 sUrl目标URL。 返回值从服务器接收到的响应文本。 关键点 同样设置了请求头来指定接受的内容类型。提供了相同的异常处理逻辑。
JSON 解析函数 GetProduceId
该函数演示了如何调用 HttpPost 函数并与后端服务交互以获取产品ID。它还展示了如何解析返回的JSON响应。 参数 cName可能用于标识客户端或其他上下文信息未在代码中使用。localComm可能是某种通信接口或配置对象未在代码中使用。 返回值根据需要返回特定值当前为空。 关键点 构造了一个JSON字符串作为请求体的一部分。调用了 HttpPost 发送请求并接收响应。使用 TJSONObject.ParseJSONValue 方法将响应字符串解析为 TJSONObject 对象。检查响应中的 code 字段是否表示成功假设 0000 是成功的状态码。 POST
function HttpPost(sUrl, sJson: string): string;
varJsonToSend: TStringStream;idHttp1: TIdHTTP;
beginEnterCriticalSection(gPostCritDML);tryJsonToSend : TStringStream.Create(sJson, TEncoding.UTF8);Result : ;tryidHttp1 : TIdHTTP.Create(nil);idHttp1.HTTPOptions : [hoKeepOrigProtocol, hoForceEncodeParams];idHttp1.ConnectTimeout : 2000;idHttp1.Response.ContentType : application/json;charsetutf-8;idHttp1.Request.Accept : application/json;charsetutf-8;idHttp1.Request.ContentType : application/json;charsetutf-8;idHttp1.Request.CharSet : utf-8;tryResult : idHttp1.Post(sUrl, JsonToSend);excepton E: Exception dobeginSaveLogMsg(与后台服务通讯异常 e.Message);end;end;finallyFreeAndNil(JsonToSend);end;finallyidHttp1.Free;LeaveCriticalSection(gPostCritDML);end;
end;
sJson是JSON格式的字符串例如sJson : {factoryTag:02,num:1} GET
function HttpGet(sUrl: string): string;
varidHttp1: TIdHTTP;
beginEnterCriticalSection(gGetCritDML);tryResult : ;idHttp1 : TIdHTTP.Create(nil);idHttp1.HTTPOptions : [hoKeepOrigProtocol, hoForceEncodeParams];idHttp1.ConnectTimeout : 2000;idHttp1.Response.ContentType : application/json;charsetutf-8;idHttp1.Request.Accept : application/json;charsetutf-8;idHttp1.Request.ContentType : application/json;charsetutf-8;idHttp1.Request.CharSet : utf-8;tryResult : idHttp1.Get(sUrl);excepton E: Exception dobeginSaveLogMsg(sUrl);SaveLogMsg(与后台服务通讯异常 e.Message);end;end;finallyidHttp1.Free;LeaveCriticalSection(gGetCritDML);end;
end;
JSON解析
导入System.JSON
function GetProduceId(cName: string; localComm: CLocalComm): string;
varsRsp, sJson: string;jRet: TJSONObject;
beginResult : ;sJson : {factoryTag:02,num:1};sRsp : HttpPost(ReadConfStr(url, sc_url) productIdBd, sJson);if (sRsp ) and (Pos({, sRsp) 0) and (Pos(}, sRsp) 0) thenbeginjRet : TJSONObject.ParseJSONValue(sRsp) as TJSONObject;if jRet.GetValue(code).Value 0000 thenbeginend;end;
end;