Php API给出了406个带有Accept application/json请求的代码:Bluehost

Php API给出了406个带有Accept application/json请求的代码:Bluehost,php,mime-types,truffle,nft,Php,Mime Types,Truffle,Nft,这是我尝试验证API时得到的结果 Content-Type: application/json Vary: Accept { "valid": false, "token_uri": "https://mining4btc.com/NFT/rinkeby/CKE/1", "errors": [ "InvalidTokenUrlResponseException: I

这是我尝试验证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:

正如你所见,它的代码是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。

你能记录请求头并在问题中传递它们吗?406通常意味着客户端请求了
Accept-
(内容类型、语言、字符集等)头,但服务器无法使用此参数进行响应。例如,客户端请求
Accept language:en_GB
,但服务器只能用
language:es_es
响应,因此返回406。关于Accept:application/json头部分,您是对的。此外,如果“无法”是指服务器专门配置为阻止它们。