【发布时间】:2016-02-19 08:35:30
【问题描述】:
我正在尝试使用 this API 并使用所需的参数向它发送 POST。
使用此代码:
function postToService_php( $urlAbs, $data ) {
$dataJSON = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $urlAbs);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $dataJSON);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($dataJSON))
);
$resultJSON = curl_exec($ch);
return $resultJSON;
}
$postData = array(
'UserName' => '*username*',
'Password' => '*password*',
'Area' => 1
);
var_dump(postToService_php('http://e20prodwebapi.esmartapi.com/api/Authenticate', $postData));
这似乎给了 string(0) "" 结果,我在这里做错了什么?
【问题讨论】:
-
作为测试,尝试将
$info=curl_getinfo( $ch );return $info;添加到您的 curl 函数中,看看会显示什么。对我来说(没有用户名/密码)我收到了 403 响应 -
我似乎得到了相同的响应,包括用户名和密码。编辑:根据“返回 200-OK 并提供有关用户的信息,如果用户在此区域(网络或电源)中不存在,则返回 401-未授权或 410-Gone。”如果用户不存在,它应该给出 410,对吧?
-
我看不到注册方法,因此无法进一步测试 - 尽管使用 https 确实返回了 401
-
太棒了,https 成功了!谢谢:)