注册 登录
编程论坛 Delphi论坛

delphi7使用Tidhttp设置HOST无效

赵丛 发布于 2023-08-17 13:48, 458 次点击
当我在请求远程服务器的时候需要去设置win系统中的hosts文件:IP 域名。然后使用域名去请求,我就想直接使用IP去请求服务。发现404通过查找后发现API文档中有一个头属性host才能去直接使用IP去请求。

HOSTS文件设置(列子)

127.0.0.1 BBB
直接使用 http://127.0.0.1/api/plans 不行 使用url := 'http://BBB/api/plans'可以

IdHttp := TIdHTTP.Create(nil);
  try
    IdHttp.HTTPOptions := IdHttp.HTTPOptions + [hoKeepOrigProtocol];
    IdHttp.ProtocolVersion := pv1_1;
    IdHttp.Request.ContentType := 'application/json';
    IdHttp.Request.AcceptEncoding := 'gzip, deflate, br';
    IdHttp.Request.Connection := 'keep-alive';
    IdHttp.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)';
    IdHttp.Request.Accept := '*/*';
    // 添加请求参数和请求体初始化
    jo := SO(date);
    RequestStream := TStringStream.Create(jo.AsJSON);
    try
      //IdHttp.Request.RawHeaders.Values['host']:='BBB';
      ResponseStr := IdHttp.Post(url, RequestStream);
      // 网页中存在中文时,需要进行UTF8解码
      ResponseStr := UTF8Decode(ResponseStr);
      Result := ResponseStr;
 
    except
      on E: Exception do
      begin
        ShowMessage(E.Message);
        Result := '';
      end;
    end;
 
  finally
    IdHttp.Free;
    RequestStream.Free;
  end;
设置IdHttp.Request.RawHeaders.Values['host']:='BBB';不行

IdHttp.Request.Host:='BBB';也不可以

IdHttp.Request.CustomHeaders.Values['host']:='BBB';也不可以

IdHttp.Request.CustomHeaders.Add('host: BBB');还是不行

我快逼疯了,有现在使用delphi7的大佬能帮我一下么?
0 回复
1