delphi通过Get方式从Http服务获取Json格式的数据
时间: 2024-09-30 12:02:45 浏览: 27
通过Json数据格式进行Http服务交互(Delphi)-Delphi代码类资源
在Delphi中,通过`TIdHTTP`库发送HTTP GET请求并接收JSON数据是一个常见的任务。以下是一个基本的示例:
1. 首先,你需要包含`System.Net.HttpClient`单元,这是Indy库的一部分,用于处理HTTP请求:
```delphi
uses
System.Net.HttpClient,
Indy.Types;
```
2. 创建一个`THttpClient`实例:
```delphi
var
HttpClient: THttpClient;
begin
HttpClient := THttpClient.Create;
end;
```
3. 设置HTTP请求方法为GET,并指定URL:
```delphi
procedure GetDataFromServer(const ServerUrl: String);
var
Response: TWebResponse;
JsonStr: string;
begin
HttpClient.Request.Method := TMethodType.httpGet;
HttpClient.Request.URL := ServerUrl;
try
// 发起请求
Response := HttpClient.ExecuteRequest;
// 检查请求是否成功(例如,状态码为2xx)
if (Response.StatusCode in [TStatusCode.ok, TStatusCode.created]) then
begin
// 读取响应内容作为字符串
JsonStr := TIdIOHandlerSocket.ReadString(Response.Handle, -1, True);
// 解析JSON字符串
var JsonObject: TJSONObject; // 或者使用your_json_library
try
JsonObject := TJSONObject.ParseString(JsonStr);
// 现在你可以操作JsonObject了
except
on E: Exception do
ShowMessage('Error parsing JSON: ' + E.Message);
end;
end
else
begin
ShowMessage('Failed to fetch data: HTTP status code: ' + IntToHex(Response.StatusCode));
end;
finally
// 关闭响应
Response.Free;
end;
end;
// 调用函数
GetDataFromServer('http://example.com/api/data.json');
```
4. 完成后,记得在适当的时机释放`THttpClient`对象。
阅读全文