Запрос CURL PHP для ошибки возврата веб-службы -- php поле с участием curl пол Связанный проблема

PHP cURL Request for Web Service Returning Error


1
vote

проблема

русский

Я продолжаю получать ошибку: «Не удалось отменить сущность Serialize» при выполнении запроса на отдых ниже. Я предполагаю, что это связано с форматированием моего JSON, но не может за жизнь меня понять. Любая помощь будет очень ценится.

 <код> //LOGIN //Set the url for login $url = $urlRoot . "/session";  //Build the resource request $params = array("encryptedPassword" => false, "indentifier" => $userName, "password" => $password);  //JSON encode parameters $jsonParams = json_encode($params) ;  //Set up the curl resource $ch = curl_init($url); curl_setopt($ch, CURLOPT_HTTPHEADER, array(     "Content-Type: application/json; charset=UTF-8",     "Accept: application/json; charset=UTF-8",      "X-IG-API-KEY: ".$apiKey,     "Version: 1" )); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true);  curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonParams); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //**NB delete this line for production  $result = curl_exec($ch);  //Output login response - includes the header echo($result) . PHP_EOL;  //Close curl resource to free up system resources curl_close($ch);   

Вот ссылка, которая еще подробно описывает ресурс, который я пытаюсь потреблять https://labs.ig.com/rest-trading-ap-reference/service-detail?id=124

Успешно попытался потреблять сервис в чистых JS в одиночку. Возможно, контрастный код сделает мою ошибку в PHP очевидно для кого-то.

 <код> function login() {     // Get username and password from user interface fields    apiKey = $("#apikey").val();    var identifier = $("#username").val();    var password = $("#password").val();     if (apiKey=="" || identifier=="" || password=="") {        return false;    }     password = encryptedPassword(password);    console.log("Encrypted password " + password);     // Create a login request, ie a POST request to /session    var req = new Request();    req.method = "POST";    req.url = urlRoot + "/session";     // Set up standard request headers, i.e. the api key, the request content type (JSON),     // and the expected response content type (JSON)    req.headers = {       "Content-Type": "application/json; charset=UTF-8",       "Accept": "application/json; charset=UTF-8",       "X-IG-API-KEY": apiKey,       "Version": "2"    };     // Set up the request body with the user identifier (username) and password    var bodyParams = {};    bodyParams["identifier"] = identifier;    bodyParams["password"] = password;    bodyParams["encryptedPassword"] = true;    req.body = JSON.stringify(bodyParams);     // Prettify the request for display purposes only    $("#request_data").text(js_beautify(req.body) || "");     // Send the request via a Javascript AJAX call    try {       $.ajax({          type: req.method,          url: req.url,          data: req.body,          headers: req.headers,          async: false,          mimeType: req.binary ? 'text/plain; charset=x-user-defined' : null,          success: function (response, status, data) {              // Successful login              // Extract account and client session tokens, active account id, and the Lightstreamer endpoint,             // as these will be required for subsequent requests             account_token = data.getResponseHeader("X-SECURITY-TOKEN");             console.log("X-SECURITY-TOKEN: " + account_token);             client_token = data.getResponseHeader("CST");             console.log("CST: " + client_token);             accountId = response.currentAccountId;             lsEndpoint = response.lightstreamerEndpoint;              // Prettify response for display purposes only             $("#response_data").text(js_beautify(data.responseText) || "");              // Show logged in status message on screen             $("#loginStatus").css("color", "green").text("Logged in as " + accountId);          },          error: function (response, status, error) {              // Login failed, usually because the login id and password aren't correct             handleHTTPError(response);          }       });    } catch (e) {       handleException(e);    }      return true;  }   
Английский оригинал

I continue to receive the error: "Failed to de-serialize entity" when making the REST request below. I'm assuming it has to do with the formatting of my json, but can't for the life of me figure it out. Any help would be much appreciated.

//LOGIN //Set the url for login $url = $urlRoot . "/session";  //Build the resource request $params = array("encryptedPassword" => false, "indentifier" => $userName, "password" => $password);  //JSON encode parameters $jsonParams = json_encode($params) ;  //Set up the curl resource $ch = curl_init($url); curl_setopt($ch, CURLOPT_HTTPHEADER, array(     "Content-Type: application/json; charset=UTF-8",     "Accept: application/json; charset=UTF-8",      "X-IG-API-KEY: ".$apiKey,     "Version: 1" )); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true);  curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonParams); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //**NB delete this line for production  $result = curl_exec($ch);  //Output login response - includes the header echo($result) . PHP_EOL;  //Close curl resource to free up system resources curl_close($ch); 

Heres's a link that further details the resource that I'm trying to consume https://labs.ig.com/rest-trading-api-reference/service-detail?id=124

I tried successfully to consume the service in pure JS alone. Perhaps contrasting the code will make my error in PHP obvious to someone.

function login() {     // Get username and password from user interface fields    apiKey = $("#apikey").val();    var identifier = $("#username").val();    var password = $("#password").val();     if (apiKey=="" || identifier=="" || password=="") {        return false;    }     password = encryptedPassword(password);    console.log("Encrypted password " + password);     // Create a login request, ie a POST request to /session    var req = new Request();    req.method = "POST";    req.url = urlRoot + "/session";     // Set up standard request headers, i.e. the api key, the request content type (JSON),     // and the expected response content type (JSON)    req.headers = {       "Content-Type": "application/json; charset=UTF-8",       "Accept": "application/json; charset=UTF-8",       "X-IG-API-KEY": apiKey,       "Version": "2"    };     // Set up the request body with the user identifier (username) and password    var bodyParams = {};    bodyParams["identifier"] = identifier;    bodyParams["password"] = password;    bodyParams["encryptedPassword"] = true;    req.body = JSON.stringify(bodyParams);     // Prettify the request for display purposes only    $("#request_data").text(js_beautify(req.body) || "");     // Send the request via a Javascript AJAX call    try {       $.ajax({          type: req.method,          url: req.url,          data: req.body,          headers: req.headers,          async: false,          mimeType: req.binary ? 'text/plain; charset=x-user-defined' : null,          success: function (response, status, data) {              // Successful login              // Extract account and client session tokens, active account id, and the Lightstreamer endpoint,             // as these will be required for subsequent requests             account_token = data.getResponseHeader("X-SECURITY-TOKEN");             console.log("X-SECURITY-TOKEN: " + account_token);             client_token = data.getResponseHeader("CST");             console.log("CST: " + client_token);             accountId = response.currentAccountId;             lsEndpoint = response.lightstreamerEndpoint;              // Prettify response for display purposes only             $("#response_data").text(js_beautify(data.responseText) || "");              // Show logged in status message on screen             $("#loginStatus").css("color", "green").text("Logged in as " + accountId);          },          error: function (response, status, error) {              // Login failed, usually because the login id and password aren't correct             handleHTTPError(response);          }       });    } catch (e) {       handleException(e);    }      return true;  } 
</div
     

Список ответов

0
 
vote

json версию. Вам придется убедиться, что версия, которую вы кодируете, могут быть декодированы на другой стороне.

Ниже приведен выход <код> phpinfo(); на моем PHP 5.6.3 Установить:

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

Есть также различные сайты проверки JSON, такие как этот: http://jsonlint.com/

 

JSON is versioned. You will have to make sure that the version you are encoding with can be decoded on the other side.

Below is the output of phpinfo(); on my PHP 5.6.3 install:

enter image description here

There are also various JSON validation sites like this one: http://jsonlint.com/

</div
 
 
 
 

Связанный проблема

1  Правильный способ отправить почтовики, используя PHP?  ( Proper way to send mailers using php ) 
У меня есть PHP-скрипт для отправки 1 00 000 писем каждый день. Он просто управляет всеми электронными письмами в цикле и ссылается на почту () .. Я не могу...

1  Почему PHP не может создать файл, даже с 777 разрешениями?  ( Why cant php create a file even with 777 permissions ) 
У меня есть тестовый сервер виртуальной арки Linux с Xampp, работающим на моем ноутбуке, и я не могу получить PHP для создания новых файлов, даже с разрешения...

0  PHP Проверка формата DateTime с помощью PREG_MATCH и CHECHDATE неправильный результат  ( Php checking datetime format using preg match and checkdate wrong result ) 
Я хочу подтвердить формат dateTime с помощью функции preg_match () и checkdate (). Мой формат «DD / MM / YYYY HH: MM: SS». Что не так с моим кодом? <код> fu...

0  Cookie не доступно на сайте  ( Cookie not available sitewide ) 
У меня есть два вопроса с настройкой и извлечением файлов cookie. cookie загружается, но нельзя вызывать, пока страница не будет обновлена. Это означает, ч...

3  Рассчитать размер плитки карты Google на уровне масштабирования N  ( Calculate tile size of google map at zoom level n ) 
Эй. Эй. У меня есть приложение MAPS, которое использует карты Google. Я получаю границы от карты, а затем я делаю некоторые кластеризащие маркеры на этой терр...

0  Защита пользовательских данных - для использования в вызовах метода, SQL и файловые вызовы  ( Securing user data for use in method calls sql and file calls ) 
Я использую <код> $_GET , <код> $_POST и <код> $_COOKIE Переменные в вызовах метода, SQL-запросы и файловые вызовы - и необходимо сбежать / Перепишите эти д...

0  Если запись в таблице A не существует в таблице b сделать что-то, как бы я пошел по этому поводу?  ( If record in table a does not exist in table b do something how would i go abou ) 
У меня есть таблица A с полем, называемым писем, мне нужно проверить таблицу B, которая также имеет поле под названием Emails. Если электронное письмо в табли...

1  Как читать защищенные данные из API API / PHP API Facebook API / PHP  ( How to read protected data from facebook ads api php sdk ) 
Я получаю защищенный объект, возвращенный из вызова API в рекламу Facebook. Я звоню с <код> $campaigns = $account->getAdCampaigns($fields, $params); и...

2  Как я могу скачать партию фотографий из URL-адресов, хранящихся в базе данных MySQL  ( How do i download a batch of pictures from urls stored in a mysql database ) 
У меня есть база данных, содержащая URL-адреса изображений, которые выглядят так: <код> DATABASE : id / url 1 / http://www.pic1.jpg 2 / http://www.pic2.jpg ...

6  Как вы заставляете гравитар на отображение идентификатора  ( How do you force gravatar into displaying identicon ) 
Есть ли способ заставить Gravatar до всегда Вернуть identicon url? P >. Единственный способ, которым я нашел до сих пор: <Код> ?forcedefault=1&default=my...

0  Как вы используете PHP и SQL для отправки данных таблицы на другую таблицу  ( How do you use php and sql to submit table data to another table ) 
У меня есть таблица полетов, и я использую цикл, чтобы распечатать информацию о рейсах, наряду с кнопкой отправки, кнопка, которая нажала, - это представленны...

0  WordPress Query 'Orderby' => 'meta_value' списки 10 до 9  ( Wordpress query orderby meta value lists 10 before 9 ) 
Я создаю сайт WordPress для моего отца в ресторане закона. Каждый курс имеет номер, который я перечисляю с использованием «orderby» расширенного пользовательс...

0  Symfony2 параметр или проблема кэша  ( Symfony2 parameter or cache issue ) 
Я использую Symfony2 для моего приложения и приложения, работая нормально в Windows, но когда я загружаю его на сервер (Ubuntu 12.04 LTS), дает следующую ошиб...

0  Авто не показывая результат jQuery  ( Auto complete not showing result jquery ) 
Я пытаюсь создать автоматическую комплектацию, используя jqueryui.i am echo ing a jquery a age ange Результат базы данных из удаленного поиска файлов.php.it п...

2  Сделать HTACCESS не применять для некоторых подпапок  ( Make htaccess to not be applied for some subfolders ) 
Я использую эту htaccess для моего приложения. <код> <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQ...

Связанный проблема

1  Правильный способ отправить почтовики, используя PHP? 
1  Почему PHP не может создать файл, даже с 777 разрешениями? 
0  PHP Проверка формата DateTime с помощью PREG_MATCH и CHECHDATE неправильный результат 
0  Cookie не доступно на сайте 
3  Рассчитать размер плитки карты Google на уровне масштабирования N 
0  Защита пользовательских данных - для использования в вызовах метода, SQL и файловые вызовы 
0  Если запись в таблице A не существует в таблице b сделать что-то, как бы я пошел по этому поводу? 
1  Как читать защищенные данные из API API / PHP API Facebook API / PHP 
2  Как я могу скачать партию фотографий из URL-адресов, хранящихся в базе данных MySQL 
6  Как вы заставляете гравитар на отображение идентификатора 
0  Как вы используете PHP и SQL для отправки данных таблицы на другую таблицу 
0  WordPress Query 'Orderby' => 'meta_value' списки 10 до 9 
0  Symfony2 параметр или проблема кэша 
0  Авто не показывая результат jQuery 
2  Сделать HTACCESS не применять для некоторых подпапок 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.