2

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

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

4

1 回答 1

2

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

发行说明状态:

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

这是最终(工作)代码:

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 字符串中发现错误。

于 2014-03-30T06:05:54.270 回答