Вот три части моего кода:
Часть "a" - это мое тело запроса скручивания.
Часть "b"это бэкэнд моего сайта, который включает в себя запрос скручивания.
Часть "c" является результатом этого запроса в почтальоне.
Я не получаю никакой ошибки, но я получаю нулевой ответ.Не могли бы вы сказать мне, в чем проблема, что я получаю нулевой ответ в моем браузере?
часть a: ----------------------------------
class API
{
/**
* @var string
*/
private $ip = "http://localhost:5000";
/**
* @var string
*/
private $baseUrl = "/M-Pages/Api";
private $port;
private $method;
private $header;
private $body;
private $rout;
private $curl;
/**
* API constructor.
*/
public function __construct()
{
$this->curl = curl_init();
}
/**
* @param $rout
* @param $method
* @param null $port
* @param array $header
* @param array $body
*/
public function curlRequest($rout , $method = null , $port = null,$header = ["content-type: application/json"] , $body = [])
{
// set parameter of request
$this->initRequestParameters($rout, $method, $port, $header, $body);
// set option of request
$this->initCurlOptions();
// execute curl request and get result
$response = curl_exec($this->curl);
// get error of curl request
$err = curl_error($this->curl);
// close curl
// check error of request
if ($err) {
//TODO :error change
echo "CURL Error #:" . $err;//TODO: set custom error function
} else {
return $response;
curl_close($this->curl);
}
}
/**
* @param $rout
* @param $method
* @param null $port
* @param array $header
* @param array $body
*/
private function initRequestParameters($rout , $method , $port = null, $header = ["content-type: application/json"] , $body = []){
$this->port = $port != null ? $port : "5000";
// var_dump( $this->port );
$this->method = $method != null ? strtoupper($method) : "GET";
// var_dump( $this->method);
$this->header = $header != [] ? $header :["content-type: application/json"];
// var_dump($this->header);
$this->body = $body != [] ? $body : [];
// var_dump($this->body);
$this->rout = $rout;
// var_dump( $this->rout);
}
/**
* @return resource
*/
private function initCurlOptions()
{
switch ($this->method) {
case "POST":
$this->initPostRequestOption();
break;
case "GET":
$this->initGetRequestOption();
break;
}
return $this->curl;
}
private function initPostRequestOption()
{
curl_setopt_array($this->curl, array(CURLOPT_PORT => $this->port,
CURLOPT_URL => $this->ip . $this->port . $this->baseUrl . $this->rout,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => $this->method,
CURLOPT_HTTPHEADER => $this->header)
);
// var_dump( $this->ip . $this->port . $this->baseUrl . $this->rout);
}
private function initGetRequestOption()
{
curl_setopt_array($this->curl, array(CURLOPT_PORT => $this->port,
CURLOPT_URL => $this->ip . $this->port . $this->baseUrl . $this->rout,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => $this->method,
CURLOPT_HTTPHEADER => $this->header)
);
}
}
part b:----------------------------
$body = "{\n \"params\" : {\"user_name\":\"".$user_name . "\"}}";
// var_dump($body);
$this->api = \DI::mapClass("API", "API", $GLOBALS["namespace"]["service"]);
// echo 'api FIRST';
$res = $this->api->curlRequest("/First/login","POST",[],[], $body);
$res = json_decode($res, true);
var_dump($res);
exit();
часть c: ---- это мой почтальон и ответ на мой запрос: