Код доступа не генерируется после запроса CURL - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть URL-адрес, если я запрашиваю у браузера этот URL-адрес, он сам генерирует код в строке заголовка браузера, но всякий раз, когда я запрашиваю через CURL, он показывает

{"message":"'UU8zSElJenNBTTRxakV1Y1FreUhCMkZlbnhiWm4xY003Vm55alBKVjpiM3pwcnpl cnQz' not a valid key=value pair (missing equal-sign) in Authorization header: 'Basic UU8zSElJenNBTTRxakV1Y1FreUhCMkZlbnhiWm4xY003Vm55alBKVjpiM3pwcnplcnQz'."}"

Actual URlэто как:

https://api.upstox.com/index/dialog/authorize?apiKey=QO3HIIzsAM4qjEucQkyHB2Fetytg1cM7VnyjPJV&redirect_uri=http://127.0.0.1:3000/&response_type=code

<?php

$url      = "https://api.upstox.com/index/dialog/authorize";
$api_key  = "QO3HIIzsAM4qjEucQkyHB2Fn1cM7VnyjPJV";
$uri      = "http://127.0.0.1:3000/";
$username   = "QO3HIIzsAM4qjEucQkynxbZn1cM7VnyjPJV";
$password   = "b3zprt3";


$data = array("apiKey" => $api_key, "redirect_uri" => 
"http://127.0.0.1:3000/","response_type" => "code");
$data_string = json_encode($data);

$curl     = curl_init();

curl_setopt_array($curl, array(

CURLOPT_URL             => $url,
CURLOPT_USERPWD         => "$username:$password",
CURLOPT_RETURNTRANSFER  => true,
CURLOPT_HEADER          =>  0,
CURLOPT_POSTFIELDS     => $data_string,
));

$result = curl_exec($curl);
//curl_close($curl);
var_dump($result);

?>

После запуска этого кода я получаю следующее сообщение:

{"message":"'UU8zSElJenNBTTRxakV1Y1FreUhCMkZlbnhiWm4xY003Vm55alBKVjpiM3pwcnplcnQz' not a valid key=value pair (missing equal-sign) in Authorization header: 'Basic UU8zSElJenNBTTRxakV1Y1FreUhCMkZlbnhiWm4xY003Vm55alBKVjpiM3pwcnplcnQz'."}

1 Ответ

0 голосов
/ 07 апреля 2019

вы можете использовать:

curl_setopt($curl, CURLOPT_HTTPHEADER, [ "Authorization: Basic ".base64_encode($this->username.":".$this->password), ]);

или добавить это:

curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
...