CURL Объект типа \ ‘System.DBNull \’ не может быть преобразован в тип \ ‘System.String

Я пытаюсь получить ответ от веб-сайта / сервера, и все, что я получаю взамен:

System.ArgumentException','Object of type \'System.DBNull\' cannot be converted to type \'System.String

мой код PHP:

$url = 'website';
$fields = array('searchstring' => urlencode('solkrem'), 'menuID' => urlencode(0), 'genses' => urlencode('20170201178577A2F54'), 'removeimages' => urlencode(false));

function httpPost($url, $data)
{
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close($curl);
return $response;
}

echo "<br><br>";

$result = httpPost($url,$fields);

var_dump($result);

Я также знаю, когда я пытаюсь сделать это через requestmaker.com с данными и URL, я получаю ответ, который хотел …

Разве я не кодирую свои поля правильно, или в чем может быть причина?

РЕДАКТИРОВАТЬ: некоторая информация от requestmaker.com:

Заголовки запроса отправлены:

POST xxxxx HTTP/1.1
Host: xxx.com
Accept: */*
Content-Type: text/html
Content-Length: 75

заголовок запроса получен:

HTTP/1.1 200 OK
Date: Thu, 02 Feb 2017 14:03:20 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 4.0.30319
Cache-Control: private
Expires: Thu, 02 Feb 2017 14:03:19 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 58300

РЕДАКТИРОВАТЬ 3:

Я узнал, даже что сайт просит меня добавить детали с & разделитель, он не будет работать, если его так, и он выдаст ту же ошибку:
введите описание изображения здесь

Но если это выглядит так, без & Сепаратор, это работает. Я не знаю, как его отправить, вызвать его бэкэнд PHP на тестовой странице.

Кроме того, если я не отправляю какие-либо поля, он выдаст тот же вывод, что и ошибка, которая у меня есть.

введите описание изображения здесь

обновление 4:

С их сайта я увидел, что они отправляют его так:

'searchstring=solkrem\r\nmenuID=0\r\ngenses=20170201178577A2F54\r\nremoveimages=false

это что-то сделает? хмм.

0

Решение

Я думаю, что ваша ошибка с параметром «removeimages» …

У тебя есть:

'removeimages' => urlencode(false)

И это, вероятно, должно быть:

'removeimages' => urlencode('false')

URL, кодирующий логическое значение false, не пропустит ничего в строке запроса и не создаст нулевое значение на другом конце.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector