0

我创建了一个脚本来将 json 数据发送到 url

$data   =   array();

$key        =   'mysecretkey';
$string     =   'teststring';

$data['date']               =   '2013-06-19 05:38:00';
$data['encrypted_string']   =   mcrypt_encode($string,$key);
$data['id']                 =   231;
$data['source_ref']         =   'testreference';
$data['status']             =   'Active';

header('Content-type: text/json');
header('Content-type: application/json');

$url = 'http://localhost/myproject/test/add_json_data'; 

$json_string    =   json_encode($data);

$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS,$json_string);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch, CURLOPT_HEADER, 0);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec( $ch );   

mcrypt_encode对字符串进行编码。这是 json_string

{
  "date": "2013-06-19 05:38:00",
  "encrypted_string": "7Y4jqgIfhj25ghsF8yJ/qTtzXafTtIlwsz7xWIDVWJGoF22X2JbfSWfQtgmI1dYyyJDgs3nmaWctTEgKW5VmHw==",
  "id": 231,
  "source_ref": "testreference",
  "status": "Active"
}   

当我执行脚本时,我提供的 url 上没有任何反应。

这是我在 url 上所做的。

function add_json_data()
{
    $json   =   file_get_contents('php://input');

    $obj        =   json_decode($json);

    $this->load->helper('file');
    write_file('json.json',$json);      
}   

我正在使用 codeigniter,所以我只是将发布数据保存在 json 格式的文件中,看看会发生什么。但我看到没有调用 url。我假设由于包含编码字符串的编码 json 字符串,它不会将数据发送到 url。如何将我的编码密钥发送到 url。我还检查了我是否encrypted_string用“测试”替换它工作正常。我如何将数据发送到 url 或任何替代方案?请帮忙。

4

2 回答 2

0

我已经找到了答案。这是我如何做到这一点

$data   =   array();

$key        =   'mysecretkey';
$string     =   'teststring';

$data['date']               =   '2013-06-19 05:38:00';
$data['encrypted_string']   =   mcrypt_encode($string,$key);
$data['id']                 =   231;
$data['source_ref']         =   'testreference';
$data['status']             =   'Active';

$url = 'http://localhost/myproject/test/add_json_data'; 

$json_string    =   json_encode($data);

$header[]   =   'Content-type: text/json';
$header[]   =   'Content-type: application/json';
$header[]   =   'Content-Length: '.strlen($json_string);

$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS,$json_string);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch, CURLOPT_HTTPHEADER,$header);
curl_setopt( $ch, CURLOPT_HEADER, 0);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec( $ch );   

在设置标题数组并将其作为选项传递给 curl 后,它工作正常。

于 2013-06-20T07:00:19.127 回答
0

error_reporting在您开发代码时始终打开,否则最简单的语法错误看起来就像一个引人注目的错误。

该行:

$string     =   'teststring'

缺少一个分号。

于 2013-06-19T15:26:18.703 回答