【问题标题】:Indy 400 Bad Request exceptionIndy 400 错误请求异常
【发布时间】: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 响应标头或正文数据中是否提供了任何提示来描述服务器认为该请求有什么问题?

标签: indy10 delphi-10.2-tokyo


【解决方案1】:

感谢您的回复和建议。我发现了导致问题的原因。我的 URL 中似乎有一些嵌入的空格,这些空格触发了错误的请求消息。

让我失望的是,将相同的 URL 粘贴到浏览器中可以正常工作,但使用 indy 的相同 URL 却失败了。更正嵌入空间的问题后,它按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-08
    • 2018-10-19
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    相关资源
    最近更新 更多