PHP curl和ISIC验证(REST api)。我该如何工作?

时间:2017-02-14 09:01:42

标签: php rest curl

我想验证某人是否有有效的ISIC卡,我已为此Rest API编写了以下代码(http://nakoduj.to/_upload/project_files/2015-08-18-12-51-20_DM%20-%20Integration%20Manual.pdf),但它不起作用,我不知道为什么它没有'吨。

$data = array(  "cardNumber" => "S123456789000A",
                        "cardholderName" => "John Doe");

$data = json_encode($data);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://gts-dm.orchitech.net/api/verifications');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "testdm:testdm");

$result = curl_exec($ch);

if ($result === false) {
    $info = curl_getinfo($ch);
    curl_close($ch);
    die('error occured during curl exec. Additioanl info: ' . var_export($info));
}

curl_close($ch);

我总是错误地得到$ result。 $ info中没有其他信息。

提前感谢您的帮助

2 个答案:

答案 0 :(得分:0)

我建议您使用Postman。只需安装它并尝试使用它发送请求。
您将看到您的请求的结果,而不是简单地获取请求代码。
你可以看到' Code'在您的右上角'保存',按下它并选择您的语言。出于您的目的,它是PHP-> cURL。结果将如下所示:Postman example
有关邮差的更多信息here

答案 1 :(得分:0)

<?php

$data = [
        "cardNumber" => "S123456789000A",
        "cardholderName" => "John Doe",
        ];
$data = json_encode($data);
$header = $request_headers = [
                "Content-Type: application/json"
            ];
$curl_options = [
        CURLOPT_URL =>'https://gts-dm.orchitech.net/api/verifications',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => $data,
        CURLOPT_HTTPHEADER => $header,
        CURLOPT_SSL_VERIFYHOST => false,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_AUTOREFERER => true,
        CURLOPT_COOKIESESSION => true,
        CURLOPT_FILETIME => true,
        CURLOPT_FRESH_CONNECT => true,
        CURLOPT_USERPWD => "testdm:testdm"
];
$ch = curl_init();
curl_setopt_array($ch, $curl_options);
$result = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
var_dump($result);

未发送请求标头导致http错误代码415 UnsupportedMediaTypeHttpException因此需要添加请求标头,工作正常