我正在尝试使用REST方法将我的家设置为离开模式。我正在尝试使用cURL,但我不断收到“重定向后拒绝连接”。
我的代码:
$ch = curl_init("https://developer-api.nest.com/structures/$id?auth=$access_token");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"away":"away"}');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_STDERR, $fp);
curl_setopt($ch, CURLOPT_PUT, true);
echo curl_exec($ch);
错误日志(我的ID和访问代码已更改):
* About to connect() to developer-api.nest.com port 443 (#0)
* Trying 54.235.247.171... * connected
* Connected to developer-api.nest.com (54.235.247.171) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* SSL connection using TLS_DHE_RSA_WITH_AES_128_CBC_SHA
* Server certificate:
* subject: CN=developer-api.nest.com,OU=Domain Control Validated
* start date: Apr 10 21:26:03 2014 GMT
* expire date: Apr 10 21:26:03 2015 GMT
* common name: developer-api.nest.com
* issuer: CN=Go Daddy Secure Certificate Authority - G2,OU=http://certs.godaddy.com/repository/,O="GoDaddy.com, Inc.",L=Scottsdale,ST=Arizona,C=US
> PUT /structures/asdfghjkl?auth=c.asdfghjkl HTTP/1.1
Host: developer-api.nest.com
Accept: */*
Transfer-Encoding: chunked
Expect: 100-continue
< HTTP/1.1 100 Continue
< HTTP/1.1 307 Temporary Redirect
< Content-Type: application/json; charset=UTF-8
< Access-Control-Allow-Origin: *
< Cache-Control: private, no-cache, max-age=0
< Location: https://firebase-apiserver03-tah01-iad01.dapi.production.nest.com:9553/structures/asdfghjkl?auth=c.asdfghjkl
< Connection: close
< Content-Length: 0
<
* Closing connection #0
* Issue another request to this URL: 'https://firebase-apiserver03-tah01-iad01.dapi.production.nest.com:9553/structures/asdfghjkl?auth=c.asdfghjkl'
* About to connect() to firebase-apiserver03-tah01-iad01.dapi.production.nest.com port 9553 (#0)
* Trying 54.167.139.72... * Connection refused
* couldn't connect to host
* Closing connection #0
知道为什么初始连接会起作用,但重定向不是吗?
答案 0 :(得分:3)
我发现问题是我的网络服务器端口9553在出站端被阻止,所以firebase没有拒绝我的连接,这是我的防火墙一直以来。打开9553端口后,一切正常。