【问题标题】:Issue Using Fiddler for HTTP GET Containing OData Commands将 Fiddler 用于包含 OData 命令的 HTTP GET 的问题
【发布时间】:2013-04-20 23:07:15
【问题描述】:

我正在尝试使用 Fiddler 对我的 ASP.NET Web API Odata 端点服务执行 HTTP GET。 URL 包含用于过滤结果的 OData 命令。我可以使用浏览器或 Google 扩展程序“Postman”并运行查询,它可以工作。

但是,在将 URL 放入 Fiddler 的“Composer”选项卡后,它立即变为红色。执行 GET 后出现以下错误:

HTTP 错误 400。请求格式错误

虽然我认为 Fiddler 在撰写和发送导致响应的正确请求方面存在问题,但这有点牵强附会。这是带有 OData 命令的 URL:

http://localhost/MyApp/odata/People()?$filter=Name eq 'John'

如前所述,此查询在其他工具中有效,但在 Fiddler 中无效。由于我不是 Fiddler 专家,并且没有直观地看到和允许此操作的选项或找到任何文档,任何人都可以告诉我是否可以使用 Fiddler 使用 OData 命令编写和发送这种类型的 GET?

【问题讨论】:

    标签: asp.net-web-api odata fiddler


    【解决方案1】:

    也许 Fiddler 不会像其他工具那样自动编码空格?试试:

    http://localhost/MyApp/odata/People()?$filter=Name%20eq%20'John'
    

    您也可以尝试在字符串值周围编码单引号。

    另一个想法是 Fiddler 在使用“localhost”时存在一些已知问题,我通常通过在请求 URI 中的 localhost 之后添加一个点 ('.') 来解决这个问题:

    http://localhost./MyApp/odata/People()?$filter=Name%20eq%20'John'
    

    【讨论】:

    • 我刚刚确认 Fiddler 不允许在 URI 中使用空格。 URI 的输入字段将变为红色,执行请求将返回 400。只需将空格替换为“%20”就可以了。
    • Fiddler 知道 URL 中未编码的空格是非法的,并通过将字段变为红色来警告您。 “localhost”问题是不相关的,它源自诸如 System.NET 这样的 HTTP 框架绕过 localhost 的代理; Fiddler 本身对 localhost 主机名没有问题。
    • 感谢您的澄清!
    • 空格是问题所在。添加%20 的编码值解决了这个问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2017-07-04
    • 1970-01-01
    • 2018-12-31
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多