php - API 提供 406 代码并接受应用程序/json 请求:Bluehost
问题描述
这是我尝试验证我的 API 时得到的结果。
Content-Type: application/json
Vary: Accept
{
"valid": false,
"token_uri": "https://mining4btc.com/NFT/rinkeby/CKE/1",
"errors": [
"InvalidTokenUrlResponseException: Invalid response, expected 200 but got 406 for URL: https://mining4btc.com/NFT/rinkeby/CKE/1"
]
}
我正在使用它来验证我的 API: https ://testnets-api.opensea.io/asset/0xe8dD349E3B0F0FA0eE063a2D99541155aFEf14B9/1/validate/
如您所见,它得到了一个 406 代码。
这是 API:
<?php
header('Content-Type: application/json');
$output = '{
"attributes": [
{
"trait_type": "Eyes",
"value": "cute"
},
{
"trait_type": "Nose",
"value": "cute"
},
{
"trait_type": "Cheeks",
"value": "cute"
},
{
"trait_type": "Toes",
"value": "cute"
},
{
"trait_type": "Ability",
"value": "chairs"
},
{
"display_type": "boost_number",
"trait_type": "Cuteness",
"value": 5000
},
{
"display_type": "number",
"trait_type": "Age",
"value": 1
}
],
"description": "Thinking about my Mommy.",
"external_url": "https://mining4btc.com/NFT/rinkeby/CKE/external",
"image": "https://mining4btc.com/NFT/rinkeby/CKE/proof/1.jpg",
"name": "Chillin"
}';
$decoded = json_decode($output);
echo json_encode($decoded);
?>
这是一个遵循 OpenSea 文档的 NFT 合约 API;与 Truffle 一起部署到 rinkeby。
解决方案
我已经确认这是因为 Bluehost 主动阻止(通过返回此代码)带有 Accept:application/json 标头的请求。您必须联系 Bluehost 并要求他们将您希望能够访问元数据的 IP 地址列入白名单。
据我所知,他们这样做是因为他们想推动人们为 VPS 付费,因为他们假设这种请求会发送到某种需要大量后端处理的强大 API。
推荐阅读
- reactjs - 有没有办法使用material-ui创建一个带有线性进度的按钮?
- python - 如何在不冻结 GUI 的情况下训练 Keras 模型?
- android - 如何在 Android TV 应用上禁用 Playback ControlGlue?
- java - 通过 Gitlab 推送 JavaDoc
- go - 如何在代码提交和通过drone.io构建应用程序时在代码中提供所需的go模块?
- python - 使用请求时出现 MissingSchema 异常
- python - 如何使用 xarray.apply_ufunc() 将 1D 中值滤波器应用于 3D DataArray
- javascript - 如何在 php 中使用 jquery 更新当前日期
- regex - 如何通过熊猫从列输出中删除某些字符串集
- php - 我们可以在函数声明时使用 (-) 符号吗