gpt4 book ai didi

vba - 通过 WinHTTPRequest 对 NHTSA 批量 VIN 解码的奇怪限制

转载 作者:行者123 更新时间:2023-12-05 07:40:43 25 4
gpt4 key购买 nike

如果我发送超过 12 个 VIN,我会遇到一个问题(HTTP STATUS 400 Bad Request)使用代码解码 VIN,但如果我通过粘贴到网站发送超过 100 个的列表,我会得到结果。

我正在使用以下代码发送 VIN 列表以从 NHTSA vin 解码器获取信息(https://vpic.nhtsa.dot.gov/api/,批量解码 VIN(平面格式))

request = "VIN1;VIN2;VIN3; ...?format=xml"  <- just example to show format of data

Set http = New WinHTTP.WinHttpRequest
http.settimeouts 30000,30000,30000,30000
http.open "POST","https://vpic.nhtsa.dot.gov/api/vehicles/DecodeVinValuesBatch", False
http.SetRequestHeader "Content-Type", "text/plain"
http.send request

response = http.ResponseText

我认为这可能是一些长度限制,所以我尝试将内容长度设置为要发送的字符串的长度,但这似乎没有帮助。我搜索了很多,但找不到任何可以解释的特别内容。我想 NHTSA 可能对可以发回的内容有限制,但由于我可以手动将列表粘贴到网站上并获得没有多大意义的结果。它以这种方式提供相同的 XML 格式数据。我不确定还能尝试什么,所以希望其他人会有其他想法。我是 WinHTTPRequest 的新手,所以我很可能犯了一个非常愚蠢的错误。

最佳答案

您的请求无效,因为您的 VINX 值没有键 (DATA)。

在测试您的示例链接时,您可以使用浏览器上的开发人员工具看到这一点。在Firefox中(其他类似)你需要在dev tools的Console中打开Net->Log,然后你就可以看到数据发送了在 POST

Rawdata:
DATA=5UXWX7C5*BA%2C2011%3B+5YJSA3DS*EF+&format=XML

根据这个你的请求字符串应该是:

request = "DATA=VIN1;VIN2;VIN3; ...&format=xml" ' Post array elements are separated by &

您的内容类型:

http.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"

关于vba - 通过 WinHTTPRequest 对 NHTSA 批量 VIN 解码的奇怪限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45872320/

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