【问题标题】:Google safe browsing returning 400 bad request谷歌安全浏览返回 400 错误请求
【发布时间】:2014-03-28 05:29:17
【问题描述】:

Google 正在返回 400 错误请求;但是请求有什么问题?

open FSharp.Data

let apiKey = "key goes here - removed for stackoverflow"

let postUrl = "http://safebrowsing.clients.google.com/safebrowsing/downloads"
let testArray = "2\nhttp://www.google.com/\nhttp://ianfette.org/"

[<EntryPoint>]
let main argv = 

    let foo2 = Http.Request(postUrl, httpMethod = "Post",
        query   = [ "client", "api"; "apikey", apiKey; "appver", "1.0"; "pver", "2.2" ],
        body = TextRequest (testArray)
        )

    0

我已经通过成功执行 get 请求验证了我的密钥是正确的,只有帖子失败了。

【问题讨论】:

  • 我认为是请求正文不正确的原因。如果您像这样更改它let testArray = "goog-malware-shavar;\ngoogpub-phish-shavar;"(来自谷歌示例的正文),那么它将起作用。
  • 实际上“请求的正文包含由LF分隔的几行。第一行是一个数字,表示正文中包含多少个URL。” developers.google.com/safe-browsing/…
  • 是的,但是对于此调用,您应该更改 postUrl 和版本号:let postUrl = "https://sb-ssl.google.com/safebrowsing/api/lookup"... "appver", "1.5.2"; "pver", "3.0"...
  • Sergey:很好,我确实输入了错误的 URL。不幸的是,我仍然无法让它工作。

标签: f# google-api f#-data safe-browsing


【解决方案1】:

当我将 FSharp.Data 更新到 2.0.5 版(2014-03-29 发布)时,它开始工作了。我只能假设以前版本中存在一个现已修复的错误。

release notes 状态:

添加 - 到默认缺失值列表中。重新添加支持 在错误的情况下指定已知的 HTTP 标头。修复了 HTTP 的发送 使用 FSharp.Data 的可移植类库版本时的请求 完整的 .NET 版本。

这是最终(工作)代码:

open FSharp.Data

let apiKey = "key goes here"

let postUrl = "https://sb-ssl.google.com/safebrowsing/api/lookup"
let testArray = "2\nhttp://www.google.com/\nhttp://ianfette.org/"

[<EntryPoint>]
let main argv = 

    let foo2 = Http.Request(postUrl, httpMethod = "Post",
        query   = [ "client", "api"; "apikey", apiKey; "appver", "1.5.2"; "pver", "3.0" ],
        body = TextRequest (testArray)
        )

    0

感谢 Sergey Tihon 在我的问题中的 URL 字符串中发现错误。

【讨论】:

  • 嗯,我不知道我的修复如何解决了你的问题,但我很高兴它解决了 :) 你使用的是 net40 版本还是 pcl 的任何版本?
  • Gustavo:使用 .Net framework 4.5.1 和 F# 3.1 (FSHarp.Core 4.3.1.0) 在 Visusl Studio 2013 Ultimate 中使用 NuGet 包管理器添加了 FSharp.Data,始终使用最新的稳定版本。跨度>
猜你喜欢
  • 1970-01-01
  • 2018-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-28
  • 2019-07-11
相关资源
最近更新 更多