BCB中使用IDHTTP組件發送JSON數據是非常常見的操作。首先,我們需要創建一個IDHTTP對象,并設置好對應的屬性,如下所示:
IdHTTP1 := TIdHTTP.Create; IdHTTP1.Request.ContentType := 'application/json'; IdHTTP1.Request.Accept := 'application/json';
在發送數據之前,我們需要將JSON數據轉換為字符串格式,并且設置好請求的URL地址??梢允褂肨JSONObject或TJSONValue等Delphi JSON庫中的類來創建JSON數據,例如:
jsonObj := TJSONObject.Create; jsonObj.AddPair('name', '張三'); jsonObj.AddPair('age', 20); jsonString := jsonObj.ToString; url := 'http://localhost:8080/user';
接下來,我們可以使用IDHTTP的Post函數來發送JSON數據,并且等待發送完成。在發送完成后,IDHTTP會返回一個字符串數據,我們可以使用Delphi JSON庫來解析返回的JSON數據,例如:
try responseStr := IdHTTP1.Post(url, TStringStream.Create(jsonString, TEncoding.UTF8)); responseJson := TJSONObject.ParseJSONValue(responseStr) as TJSONObject; if Assigned(responseJson) then begin // 處理返回的JSON數據 end; except on E: Exception do begin // 處理異常 end; end;
需要注意的是,發送JSON數據時需要設置好ContentType和Accept的內容類型為application/json,這樣服務端接收到數據后會自動解析為JSON格式。同時也需要處理好發送和接收的異常情況,以保證程序的穩定性。