gpt4 book ai didi

f# - 使用 FSharp 类型提供程序使用 Yellow Pages.com

转载 作者:行者123 更新时间:2023-12-05 01:32:36 25 4
gpt4 key购买 nike

我在此处注册了 yellow pages.com API 程序:https://publisher.yp.com/home .

我去打这样的电话,我在浏览器中返回 JSON: http://pubapi.atti.com/search-api/search/devapi/search?term=Jumbo+China+5&searchloc=6108+Falls+Of+Neuse+Rd+27609&format=json&key=ZZZZZZZZ

当我获取 json 结果并将其放入 Json2CSharp 时,它呈现得很好。当我尝试将其加载到类型提供程序中时:

键入 RestaurantListingJson = JsonProvider< @"http://pubapi.atti.com/search-api/search/devapi/search?term=Jumbo+China+5&searchloc=6108+Falls+Of+Neuse+Rd+27609&format=json&key=ZZZZZZZ ">

我得到一个 400

看着fiddler,我明白了“用户代理是必填字段”

有没有人遇到过这个?如何将用户代理添加到类型提供程序?

提前致谢

最佳答案

我还没有创建一个帐户,所以我不能尝试这个 - 但如果错误消息说“用户代理是必填字段”,那么我猜该服务需要设置 User-Agent HTTP 请求的 header 。

这在 JsonProvider 的静态参数中不受支持,因此最好的方法是下载示例 JSON,将其保存到本地文件(例如 yp .json),然后使用它来创建类型提供程序:

type Yp = JsonProvider<"yp.json">

要实际下载一些数据(当你想发出请求时),你可以使用 Http.RequestString ,它带有 headers - 你可以在其中指定任何所需的 header ,包括用户代理:

let response = 
Http.RequestString("http://httpbin.org/user-agent", headers=["user-agent", "test"])

然后您可以使用 Yp.Parse(response) 加载数据(而不是直接使用 Load 方法来请求不允许您指定 header 的 URL ).

关于f# - 使用 FSharp 类型提供程序使用 Yellow Pages.com,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21956243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com