通过HttpClient从指定server获取数据

DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet method = new HttpGet(“http://www.baidu.com/1.html”);
HttpResponse resp;
Reader reader = null;
try {
    // AllClientPNames.TIMEOUT
    HttpParams params = new BasicHttpParams();
    params.setIntParameter(AllClientPNames.CONNECTION_TIMEOUT, 10000);
    httpClient.setParams(params);
    resp = httpClient.execute(method);
    int status = resp.getStatusLine().getStatusCode();
    if (status != HttpStatus.SC_OK) return false;

    // HttpStatus.SC_OK;
    return true;

} catch (ClientProtocolException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
} catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
} finally {
     if (reader != null) try {
           reader.close();
     } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
     }
}

在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`对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值