【发布时间】:2019-11-13 19:53:45
【问题描述】:
我正在使用 Delphi 10.2,并且使用 TIdHTTP.Get() 得到了 400 Bad Request 异常。我可以在任何浏览器中输入 HTTP 调用字符串,它可以正常工作,但不能在 Indy 中。
我的请求字符串是:
accept text/html,*/*
accept charset UTF-8
basicauthentication true
contentType Text/xml
UserAgent Mozilla/4.0 (compatible; MyApp)Mozilla/4.0 (compatible; MyApp)
【问题讨论】:
-
请您添加您的请求代码,以及您收到的实际错误消息,而不仅仅是 400
-
请edit您的问题标题不是简单重复的标签。您的标题应该足够清晰和具有描述性,以供正在浏览搜索结果列表的未来读者使用。重复标签没有任何用处。当您制作 edit 时,您还可以包含一个 minimal reproducible example 来演示该问题,因为我们无法调试我们看不到的代码。如果您在开始发帖之前先阅读tour 并阅读help center 页面(尤其是How to Ask)以了解该网站的工作原理,您会发现您在这里的体验会好很多。
-
最近一定发生了一些事情来导致这种行为变化。您是否对代码进行了更改? HTTP 服务器是否对其 HTTP 要求进行了更改?如果没有更多信息,这里的任何人都无法诊断此问题。您是否尝试从 Web 浏览器嗅探 HTTP 流量并将其与来自
TIdHTTP的 HTTP 流量进行比较,看看它们之间有什么不同?您是否尝试设置不同的UserAgent? HTTP 响应标头或正文数据中是否提供了任何提示来描述服务器认为该请求有什么问题?