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, который требует значительной внутренней обработки.

Другие вопросы по тегам