PHP API发送POST请求


PHP API sending POST requests

我有一个连接到外部API的函数:

function ICUK_Request($url, $method = 'GET', $body = NULL) {
        $client = new IcukApiClient();
        $client->username = "user";
        $client->key = "pass";
        $client->encryption = "SHA-512";
        $req = new IcukApiRequest();
        $req->url = $url;
        $req->method = $method;
        if(!is_null($body)) {
            $req->body = $body;
        }
        $res = $client->send($req);
        if ($res->success) {
            $obj = json_decode($res->response);
        }
        else {
            throw new Exception('There was an error contacting the API.');
        }
        return $obj;
    }

API文档告诉我发送这样的POST请求:

POST /domain/registration/new/
{
   "domain_name": "domain.co.uk",
   "hosting_type": "NONE",
   "registration_length": 1,
   "auto_renew": false,
   "domain_lock": false,
   "whois_privacy": false,
   "contact_registrant_id": 1
}

所以我尝试了这个:

$arr = array(
    "domain_name" => "domain.co.uk",
   "hosting_type" => "NONE",
   "registration_length" => 1,
   "auto_renew" => false,
   "domain_lock" => false,
   "whois_privacy" => false,
   "contact_registrant_id" => 1
);
ICUK_Request("/domain/registration/new", "POST", $arr);

但这在API日志中给了我一个回应:

{
  "exception_message": "Internal API exception occured",
  "exception_type": "InternalApiException"
}

我不确定这是否是通用的,是否有人可以帮助如何发布数据?

以json:形式发送

$values = json_encode($arr);
ICUK_Request("/domain/registration/new", "POST", $values);