PHP Ошибка запроса cUrl (ошибка HTTP 400. Запрос неправильно сформирован.) - PullRequest
0 голосов
/ 29 апреля 2020

Я работаю над плагином WordPress в PHP, используя cUrl. Мой URL работает для Почтальона, но не с помощью cUrl. Я попытался скрыть URL-адрес в соответствии с решениями, которые я нашел в Интернете (второй пример кода), но, похоже, ничего не получалось (я получил 404 - Файл или Каталог во втором примере кода). Может кто-нибудь объяснить мне, что я делаю неправильно, и сказать, как правильно экранировать URL-адрес?

Пример кода 1 (HTTP-код ошибки Throws 400): $ searchstring - это что-то вроде Бена Дея, взрывающегося в Бена и День ($ nameSlice 1 & 2).

function get_Lehrer($searchstring) {

$fullname = splitWords($searchstring);


$token = api_token();

$curl = curl_init();

$nameSlice1 = $fullname[0];

$nameSlice2 = $fullname[1];

$url1 = 'ExampleUrl.com/Example'; <============= example data

$url2 = "?$"."filter=startswith(vorname,'" .$nameSlice1. "') or startswith(vorname,'" .$nameSlice1. "') or startswith(nachname,'" .$nameSlice2. "') or startswith(nachname,'" .$nameSlice2. "')";

$url = $url1 . $url2;

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded' , 'Authorization: Bearer ' . $token ));

$data = curl_exec($curl);

if(!$data) {
    die('Nani?');
}
else {
    echo $data;  <===================== I print the json directly, that's where I get the error code)
    $dataarray = json_decode($data);
}
curl_close($curl);
}

Пример кода 2, где я получаю код ошибки 404 HTTP:

function get_Lehrer($searchstring) {

$fullname = splitWords($searchstring);


$token = api_token();

$curl = curl_init();

$nameSlice1 = $fullname[0];

$nameSlice2 = $fullname[1];

$url1 = 'ExampleUrl.com/Example'; <========= example data

$url2 = "?$"."filter=startswith(vorname,'" .$nameSlice1. "') or startswith(vorname,'" .$nameSlice1. "') or startswith(nachname,'" .$nameSlice2. "') or startswith(nachname,'" .$nameSlice2. "')";

$url = $url1 . curl_escape($curl, $url2);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded' , 'Authorization: Bearer ' . $token ));

$data = curl_exec($curl);

if(!$data) {
    die('Nani?');
}
else {
    echo $data;
    $dataarray = json_decode($data);
}
curl_close($curl);
//showData($dataarray, $searchmethod);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...