2

我需要一些有关电影 db api 的帮助。我经常收到连接超时错误。下面是我的代码,我试图只输出原始的 json 响应,这样我就可以从那里开始工作。

$header_opt = array(
  'http'=>array(
  'method'=>"GET",
  'header'=>"Accept: application/json\r\n" .
            "Content-Type: application/json\r\n"
          )
);

$headers = stream_context_create($header_opt);

$rawjson = file_get_contents('http://api.themoviedb.org/3/movie/tt0076759?api_key=myapikey', false, $headers);

$cleansjon = json_decode($rawjson);

echo $cleansjon;

这是我得到的错误。

Warning: filegetcontents(http://api.themoviedb.org/3/movie/tt0076759?api_key=myapikey) [function.file-get-contents]: failed to open stream: Connection timed out in /*///*/public_html/index.php on line 11

我希望有人可以帮助我。

编辑:添加了 HAR 响应

{
  "log": {
    "version": "1.2",
    "creator": {
      "name": "WebInspector",
      "version": "537.20"
    },
    "pages": [
      {
        "startedDateTime": "2013-01-27T09:51:02.534Z",
        "id": "page_1",
        "title": "http://*MyWebsite*/tmdb.php",
        "pageTimings": {
          "onContentLoad": 60636,
          "onLoad": 60635
        }
      }
    ],
"entries": [
  {
    "startedDateTime": "2013-01-27T09:51:02.534Z",
    "time": 60197,
    "request": {
      "method": "GET",
      "url": "http://*MyWebsite*/tmdb.php",
      "httpVersion": "HTTP/1.1",
      "headers": [
        {
          "name": "DNT",
          "value": "1"
        },
        {
          "name": "Accept-Encoding",
          "value": "gzip,deflate,sdch"
        },
        {
          "name": "Host",
          "value": "*MyHost*"
        },
        {
          "name": "Accept-Language",
          "value": "nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4"
        },
        {
          "name": "User-Agent",
          "value": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.20 (KHTML, like Gecko) Chrome/25.0.1328.0 Safari/537.20"
        },
        {
          "name": "Accept",
          "value": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
        },
        {
          "name": "Cache-Control",
          "value": "max-age=0"
        },
        {
          "name": "Connection",
          "value": "keep-alive"
        },
        {
          "name": "Accept-Charset",
          "value": "ISO-8859-1,utf-8;q=0.7,*;q=0.3"
        }
      ],
      "queryString": [],
      "cookies": [],
      "headersSize": 443,
      "bodySize": 0
    },
    "response": {
      "status": 200,
      "statusText": "OK",
      "httpVersion": "HTTP/1.1",
      "headers": [
        {
          "name": "Date",
          "value": "Sun, 27 Jan 2013 09:51:02 GMT"
        },
        {
          "name": "Content-Encoding",
          "value": "gzip"
        },
        {
          "name": "Server",
          "value": "Apache/2"
        },
        {
          "name": "Vary",
          "value": "Accept-Encoding,User-Agent"
        },
        {
          "name": "Content-Type",
          "value": "text/html"
        },
        {
          "name": "Connection",
          "value": "Keep-Alive"
        },
        {
          "name": "Keep-Alive",
          "value": "timeout=1, max=100"
        },
        {
          "name": "Content-Length",
          "value": "260"
        }
      ],
      "cookies": [],
      "content": {
        "size": 342,
        "mimeType": "text/html",
        "compression": 82
      },
      "redirectURL": "",
      "headersSize": 234,
      "bodySize": 260
    },
    "cache": {},
    "timings": {
      "blocked": 0,
      "dns": 13,
      "connect": 29,
      "send": 0,
      "wait": 60147,
      "receive": 5,
      "ssl": -1
    },
    "pageref": "page_1"
  }
   ]
  }
 }
4

2 回答 2

1

您可以删除 Content-Type 标头,如果您使用 HTTP PUT 或 POST 提交 JSON,这将是必需的。

该错误表明,file_get_contents 没有从主机 api.themoviedb.org 获得响应

我经常收到连接超时错误。

constantlyalways还是?often

如果您经常看到这种情况,您的 Internet 上行链路或电影数据库服务器有问题。

于 2013-01-24T06:57:48.717 回答
0

也许根本没有问题。您的应用程序正在尝试连接到服务器并收到超时错误。

于 2013-01-22T09:41:21.553 回答