Я должен сделать вызов API.В документации приведен пример URL-адреса, который я должен использовать для передачи параметров, включая авторизацию, и он выглядит так:
https://.com/create/shipment_?username=your_username_here?password=your_password_here?address=street1?package=t-shirtbox
Но поскольку API использует метод post, я не могу сделать это через http.Я должен сделать фактический почтовый запрос.
Я попробовал curl:
$url = https://.com/create/shipment_?username=your_username_here?password=your_password_here?address=street1?package=t-shirtbox
$username = 'username';
$password = 'password';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
$httpCode = curl_getinfo($ch , CURLINFO_HTTP_CODE);
$response = curl_exec($ch);
if ($response === false) $response = curl_error($ch);
curl_close($ch);
Я получил ответ:
Не авторизован.Этот сервер не может подтвердить, что вы авторизованы для доступа к запрашиваемому документу.Либо вы ввели неверные учетные данные (например, неверный пароль), либо ваш браузер не понимает, как предоставить требуемые учетные данные.
Я пробовал php, и результат тот же.
$options = array(
'http' => array(
'method' => 'POST',
'header'=> "Content-Type: application/json\r\n" .
"Accept: application/json\r\n".
"Authorization: Basic ". base64_encode("username:password") ."\r\n".
"GEOClient: account/123456\r\n".
"Content-Length: 0"
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
Ответ не авторизован.
Служба поддержки говорит, что имя пользователя и пароль, которые они дали мне для этой учетной записи, действительны.
Я также использовал такие инструменты, как почтальон и пользовательский интерфейс SOAP, чтобы проверить этот URL, но ответтакже не авторизован.
Каков будет подход к выполнению такого запроса и как правильно передать имя пользователя, пароль и все остальные данные, такие как адрес и т. д.
Спасибо!