f# - Google 安全浏览返回 400 错误请求

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

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 请求验证了我的 key 是正确的,只是失败了。

最佳答案

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

release notes状态:

Added - to the list of default missing values. Re-added support for specifying known HTTP headers in the wrong case. Fixed sending of HTTP requests when using a portable class library version of FSharp.Data in the full .NET version.

这是最终(工作)代码:

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

关于f# - Google 安全浏览返回 400 错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22704890/

相关文章:

f# - 如何执行模块做 block ?

f# - 模块还是类?

f# - 如何查看程序集中的类型提供程序

javascript - 无法在谷歌地图 API 中的标记之间绘制路线

google-cloud-platform - 从 Google GCP 项目凭证 API key 检索信息

xml - F# XML 类型提供程序和可选类型

f# - 是否有任何技巧可以在不丢失 pretty-print 的情况下将单元硬编码到记录字段中?

f# - F#可以重构为pointfree风格吗?

f# - 重载度量​​运算符 (*)

javascript - 使用谷歌地图 API 时出现错误 : This API project is not authorized to use this API