在以下方面确实需要一些帮助。
因此,我的脚本使用以下命令在远程服务器上调用API:
try {
$api = new ApiClient();
$api->call('GetNameservers', $postfields);
return array(
'success' => true,
'ns1' => $api->getFromResponse('nameserver1'),
'ns2' => $api->getFromResponse('nameserver2'),
'ns3' => $api->getFromResponse('nameserver3'),
'ns4' => $api->getFromResponse('nameserver4'),
'ns5' => $api->getFromResponse('nameserver5'),
);
}
上面的API调用正确地返回了必须的内容:
Array
(
[result] => 1000
[resData] => Array
(
[domain] => somecooldomain.com
[status] => Active
[autorenew] => 0
[contactid] => 822
[nameserver1] => ns1.nameserver1.com
[nameserver2] => ns2.nameserver2.com
[nameserver3] => ns3.nameserver3.com
[nameserver4] => ns4.nameserver4.com
[nameserver5] =>
[registrationdate] => 2018-06-29
[expirydate] => 2020-11-03
)
)
我的问题出现在以下地方:
return array(
'success' => true,
这有效:
'ns1' => $api->getFromResponse('result'),
但这不是我所需要的,因为该数组是嵌套的。我在这里尝试了很多事情:
'ns1' => $api->getFromResponse('resData.nameserver1'),
'ns1' => $api->getFromResponse(['resData']['nameserver1']),
getFromReponse如下:
public function getFromResponse($key)
{
return isset($this->results[$key]) ? $this->results[$key] : '';
}
答案 0 :(得分:2)
API响应返回一个多维数组,但是您的函数pipe := redisClient.TxPipeline()
m := structs.Map(server)
for k, v := range m {
pipe.HMSet(username, k, v)
}
cmder, err := pipe.Exec()
if err != nil {
return nil, err
}
仅提供1维。
public function getFromResponse($key)
的返回值实际上是一个数组,因此可以执行以下操作:$api->getFromResponse('resData')
从内部数组中获取项目的值。