Как вернуть ответ из текстового файла в веб-API с помощью codeigniter? - PullRequest
0 голосов
/ 29 февраля 2020
$url='https://example.com/demo/webservice/register?auth_key=cghjcgfchai1723y12y321hjvbv1asdas';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_POSTFIELDS,$posted_data);
$response  = curl_exec($ch);

if($response === false)
{
    echo 'Curl error: ' . curl_error($ch);
}
else
{
    $my_file = 'file.txt';
    $handle = fopen($my_file, 'w') or die('Cannot open file:  '.$my_file);
    fwrite($handle,$response);
}
curl_close($ch);
return $response;

regiter. php

public function register()
{
    $key='cghjcgfchai1723y12y321hjvbv1asdas';
    $secretKey=$this->input->get('auth_key');
    if($key!=$secretKey)
    {
        echo json_encode(array("response"=>"error","result"=>array("message"=>"Invalid key ")));
        exit;
    }
    print_r($_POST);
    exit();
}

file.txt

Array
(
    [email] => testn@gmail.com
    [std_name] => testing
    [menu-590] => 1000SK
    [sex] => MALE
    [father_name] => xyz
    [mother_name] => abc
    [dob] => 2020-02-21
    [phone] => 9876543211
    [address] => GHAZIABAD
    [pin] => 201206
    [aadhar] => 123456789012
)

Я использую curl для возврата ответа из файла file.txt в файл register, где Я просто использовал print_r($_POST), чтобы узнать, приходит ответ или нет, но он показывает пустой массив. Я не знаю почему? Пожалуйста, помогите мне.

Спасибо

Ответы [ 2 ]

0 голосов
/ 29 февраля 2020

Я скопировал ваш код и протестировал его в своем проекте codeigniter. Я получал такой же пустой экран или string (0) "" . Позже я обнаружил, что некоторый код в конструкторе просто перенаправляет мой скрипт на основе значения сеанса. Попробуйте, если это так и в вашем коде.

0 голосов
/ 29 февраля 2020

В вашем запросе cURL вы не печатаете ничего, а просто возвращаете ответ. замените это на печать

return $response;

В функции регистра вместо печати верните результат.

public function register()
{
    $key='cghjcgfchai1723y12y321hjvbv1asdas';
    $secretKey=$this->input->get('auth_key');
    if($key!=$secretKey)
    {
        echo json_encode(array("response"=>"error","result"=>array("message"=>"Invalid key ")));
        exit;
    }
    else
   {
      $content = trim(file_get_contents("php://input"));
      return $content
   }
}

В функции регистра выше, если клавиша неверна, вы получите сообщение об ошибке, если оно правильно, тогда вы получите данные, которые были отправлены

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...