我尝试从外部服务实施API,并且我正在使用他们的暂存环境。目前,我正在使用一些测试数据来发出基本请求/响应。
我使用的是php和cURL
库。
这些是请求的数据:
$post_data = array(
'some_property' => array(
'key1' => 'value'
),
'some_other_property' => array(...),
'sandbox' => array(
'api_key' => 'my_api',
'callbacks' => array(
'callback-type-1' => array('url' => 'http://my-url.local/api/callback1'),
'callback-type-2' => array('url' => 'http://my-url.local/api/callback2')
)
)
)
卷曲部分:
$ch = curl_init($url);
curl_setopt_array(
$ch,
array(
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'Authorization: my_auth_key',
'Content-Type: application/json',
'X-Environment: sandbox'
),
CURLOPT_POSTFIELDS => json_encode($post_data)
)
);
在$post_data
数组中有一个sandbox
属性,用于测试回调机制,因此,如果请求成功,则应调用sandbox/callbacks
中列出的回调。
会发生的是第一个请求是成功的,但是它无法调用回调函数。
打印响应我收到此错误:
[sandbox] => Array
(
[callback-type-1] => Callback could not be sent (Exception: Unable to Connect to tcp://my-url.local/:80. Error #0: php_network_getaddresses: getaddrinfo failed: Name or service not known)
)
我想我在做cURL时遇到了什么问题,但是在我周围徘徊时我并没有真正明白什么。