laravel 7 一直在我的 api 路线中添加 '/public/'
laravel 7 keeps adding '/public/' to my api routes
我正在尝试向我的 laravel api
发出 php curl 请求
这是 curl 函数
function CallAPI($method, $url, $data = false)
{
$curl = curl_init();
switch ($method)
{
case "POST":
curl_setopt($curl, CURLOPT_POST, 1);
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
case "PUT":
curl_setopt($curl, CURLOPT_PUT, 1);
break;
default:
if ($data)
$url = sprintf("%s?%s", $url, http_build_query($data));
}
curl_setopt($curl, CURLOPT_HEADER, array('Accept:application/json', 'X-Requested-With:XMLHttpRequest' )
);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
print curl_error($curl);
$result = curl_exec($curl);
curl_close($curl);
return $result;
}
这是我的称呼:
require_once ADJEMINPAY_PLUGIN_DIR.'includes/class-adjeminpay-functions.php';
$url = "https://api.adjeminpay.net/v1/auth/getToken/";
$postData = array(
'firstName' => 'Lady',
'lastName' => 'Gaga',
'submit' => 'ok'
);
$result = CallAPI("POST", $url, $postData);
var_dump($result);
这是结果:
string(454) "HTTP/2 301 date: Fri, 04 Dec 2020 12:12:03 GMT server: Apache location: https://api.adjeminpay.net/public/v1/auth/getToken content-length: 258 content-type: text/html; charset=iso-8859-1
Moved Permanently
The document has moved here.
"
看起来 laravel 没有意识到这是一个 api 请求,并不断将 url 更改为 https://api.adjeminpay.net/ public/ v1/auth/getToken/ ; it also tries to redirect to https://api.adjeminpay.net/
帮助kudasai TT
太棒了,原来我使用的 curl syntax/version 是 defective/uncomplete。
转到 PostMan 并执行相同的请求,然后复制粘贴 php -curl 代码,如下所示:
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'yourUrl',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"apikey": "qsmdlfjqs",
"application_id": "qsdlfqsmlj",
"grant-type": "qmdsfqsdf"
}',
CURLOPT_HTTPHEADER => array(
'Accept: application/json',
'Content-Type: application/json',
': ',
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
现在可以正常使用了。
Arigathanks \(^^)/
顺便说一下How to generate PHP -curl code from POSTMAN。
我正在尝试向我的 laravel api
发出 php curl 请求这是 curl 函数
function CallAPI($method, $url, $data = false)
{
$curl = curl_init();
switch ($method)
{
case "POST":
curl_setopt($curl, CURLOPT_POST, 1);
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
case "PUT":
curl_setopt($curl, CURLOPT_PUT, 1);
break;
default:
if ($data)
$url = sprintf("%s?%s", $url, http_build_query($data));
}
curl_setopt($curl, CURLOPT_HEADER, array('Accept:application/json', 'X-Requested-With:XMLHttpRequest' )
);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
print curl_error($curl);
$result = curl_exec($curl);
curl_close($curl);
return $result;
}
这是我的称呼:
require_once ADJEMINPAY_PLUGIN_DIR.'includes/class-adjeminpay-functions.php';
$url = "https://api.adjeminpay.net/v1/auth/getToken/";
$postData = array(
'firstName' => 'Lady',
'lastName' => 'Gaga',
'submit' => 'ok'
);
$result = CallAPI("POST", $url, $postData);
var_dump($result);
这是结果:
string(454) "HTTP/2 301 date: Fri, 04 Dec 2020 12:12:03 GMT server: Apache location: https://api.adjeminpay.net/public/v1/auth/getToken content-length: 258 content-type: text/html; charset=iso-8859-1
Moved Permanently
The document has moved here.
"
看起来 laravel 没有意识到这是一个 api 请求,并不断将 url 更改为 https://api.adjeminpay.net/ public/ v1/auth/getToken/ ; it also tries to redirect to https://api.adjeminpay.net/
帮助kudasai TT
太棒了,原来我使用的 curl syntax/version 是 defective/uncomplete。
转到 PostMan 并执行相同的请求,然后复制粘贴 php -curl 代码,如下所示:
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'yourUrl',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"apikey": "qsmdlfjqs",
"application_id": "qsdlfqsmlj",
"grant-type": "qmdsfqsdf"
}',
CURLOPT_HTTPHEADER => array(
'Accept: application/json',
'Content-Type: application/json',
': ',
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
现在可以正常使用了。 Arigathanks \(^^)/
顺便说一下How to generate PHP -curl code from POSTMAN。