我正在尝试向name.com API发送请求,并检查PHP中的域可用性。我真的有一个简单的测试要求。我已经阅读了他们的文档和API,收到的错误似乎没有解决方案。过去有人使用过他们的API吗?我在做什么错了?
choose_domain.php
if(isset($_POST['domain'])){
//get domain mae
$domain = $_POST['domain'];
//
//
$url = 'https://api.dev.name.com/v4/domains:checkAvailability';
$fields = array(
'username' => $username,
'password' => $password,
'token' => $name_token,
'domainNames' => array($domain)
);
//url-ify the data for the POST
$fields_string = http_build_query($fields);
//
//
//
//open connection
$ch = curl_init();
//
//
//
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
//execute post
$result_domain = curl_exec($ch);
//close connection
curl_close($ch);
}
API响应
{"message":"Unauthenticated"}
根据他们的API,此错误表示以下内容:
URL请求有一个结尾句点(在name.com之后)。示例: https://api.dev.name.com./v4/domains。或者,密码已经 输入但不输入用户名,反之亦然。
这根本不是真的,我的代码也不是这样。没有追踪期。
答案 0 :(得分:1)
实际上,您发送的用户名和密码格式错误。 API端点期望使用https://www.name.com/api-docs/Domains#CheckAvailability中提到的用于身份验证的BASICAUTH Textbox1.text = bob.PubKey.ToHex()
格式,但是您是以原始数据或正文数据的形式发送的。
相反,您必须将username and password
发送为:
username and password
因此您的完整代码如下:
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);