API дает код 406 с запросом Accept application/json
Это результат, который я получаю, когда пытаюсь проверить свой 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);
?>
Это файл .htaccess
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^1$ ./1.php
RewriteRule ^2$ ./2.php
RewriteRule ^contract$ ./CKEcontract.json
RewriteRule ^image$ ./image.jpg
RewriteRule ^external$ ./external.html
Это контрактный API для NFT в соответствии с документами OpenSea; развернут с трюфелем в ринкебю.
1 ответ
Я подтвердил, что это связано с тем, что Bluehost активно блокирует (возвращая этот код) запросы с заголовками Accept:application/json. Вы должны связаться с Bluehost и попросить их внести в белый список IP-адреса, по которым вы хотите иметь доступ к метаданным.
Насколько я могу судить, они делают это, потому что хотят подтолкнуть людей платить за VPS, потому что они предполагают, что такой тип запроса будет поступать в какой-то надежный API, который требует значительной внутренней обработки.