加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何发送自定义HTTP标头作为响应?

发布时间:2020-12-13 16:59:16 所属栏目:PHP教程 来源:网络整理
导读:我想在我的HTTP标头中发送json数据. 我正在使用Codeigniter PHP,所以我在我的控制器中执行了此操作: header('Content-Type: application/json');' 这是我的代码: $request = array( 'request' = $_GET['request'],'device_id' = $_GET['device_id'],'launc
我想在我的HTTP标头中发送json数据.

我正在使用Codeigniter PHP,所以我在我的控制器中执行了此操作:

header('Content-Type: application/json');'

这是我的代码:

$request = array(

    'request' => $_GET['request'],'device_id' => $_GET['device_id'],'launch_date'=> $_GET['launch_date'],'allowed_hours'=>$_GET['allowed_hours'],'site_id'=>$_GET['site_id'],'product'=>$_GET['product'],'software_version'=>$_GET['software_version'],'platform_os'=>$_GET['platform_os'],'platform'=>$_GET['platform'],'platform_model'=>$_GET['platform_model']

     );
$response = array(
    'response_code' =>200,'device_id'=>$_GET['device_id'],'product'=>'mlc','prov_ur'=>NULL 
);

header('Content-Type: application/json');
echo json_encode( $response );

但是当我打印我的标题时,我得到了

A PHP Error was encountered

Severity: Notice

Message: Undefined index: request

Filename: admin/license.php

Line Number: 22

A PHP Error was encountered

Severity: Notice

Message: Undefined index:
allowed_hours

Filename: admin/license.php

Line Number:
25

A PHP Error was encountered

Severity: Notice

Message: Undefined index:
allowed_hours

Filename: admin/license.php

Line Number:
40

{“response_code”:200,”device_id”:”70D0D01FBAD2″,”allowed_hours”:null,”product”:”mlc”,”prov_ur”:null}array(10)
{ [“Host”]=> string(14) “192.168.50.123” [“Connection”]=>
string(10) “keep-alive” [“Cache-Control”]=> string(9) “max-age=0”
[“Accept”]=> string(74)
“text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8″
[“Upgrade-Insecure-Requests”]=> string(1) “1” [“User-Agent”]=>
string(110) “Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36
(KHTML,like Gecko) Chrome/47.0.2526.111 Safari/537.36”
[“Accept-Encoding”]=> string(19) “gzip,deflate,sdch”
[“Accept-Language”]=> string(14) “en-US,en;q=0.8” [“Cookie”]=>
string(518)
“cisession=OhhBBhVodwwf7Tb55AVsU32ClMS5cgmxBl15WHA%2BrGnvo1kiK%2B67BWeAuJVSV2MY25zZd0riHC9cyx9fiigiBuqkPMT%2FKE9d6et%2FXaE3F7I59P9%2FEzy5byQ5nEkJq5xwXoH1I7%2B7v62cQL21%2Bjfnk3AwIy4luM7N51IUuTqg7TxunoZFD1gJO84r8degY1imNpmDk2W%2FjsQPn9bQpkWJ9KVMxxViFDaELEU0rIfYmif%2BdvXjK9W%2Fj7iWQxZYE9ZGazgBTKlLO%2BJZHNdPrdmGPFTzTUROZdffpF%2Bb25bRMPEJsZ9CE2mdVuSn%2FEu678utd0lcd9bh%2BDbTDikrHP4jBFOLbZfWKT%2F9r5GkMBrLBl%2BlvPx9RbAq%2FIsjeA1V7c6JYf41TO1bG2XKT14QFHm8m0qY8HCal%2B%2BR8tZe9i3zy24%3Dcfc459942e4ef82a5554257216a19d621f446a25”
[“If-Modified-Since”]=> string(29) “Thu,01 Jan 1970 00:00:00 GMT” }

{"response_code":200,"device_id":"70D0D01FBAD2","allowed_hours":null,"product":"mlc","prov_ur":null}

在我的回复中.我不想在我的HTTP标头响应中发送其他数据.

根据CI提升代码

public function index()
{
    $request = array(
        'request' => $this->get('request'),'device_id' => $this->get('device_id'),'launch_date'=> $this->get('launch_date'),'allowed_hours'=>$this->get('allowed_hours'),'site_id'=> $this->get('site_id'),'product'=>$this->get('product'),'software_version'=> $this->get('software_version'),'platform_os'=> $this->get('platform_os'),'platform'=> $this->get('platform'),'platform_model'=> $this->get('platform_model')
    );

    $response = array(
        'response_code' =>200,'device_id'=> $this->get('device_id'),'allowed_hours'=> $this->get('allowed_hours'),'prov_ur'=>NULL 
    );

    $this->output->set_content_type('Content-Type: application/json');

    return $this->output
    ->set_content_type('Content-Type: application/json')
    ->set_output(json_encode($response));

    echo $response;

}

解决方法

使用正常的php得到如下有时会抛出一些错误

$_GET['allowed_hours'];

我建议更改为codeIgniter输入类方法.

$this->input->get('allowed_hours');

Codeigniter Input Class将为您节省大量代码.

如用户指南中所述:使用CodeIgniter的内置方法,您可以简单地执行此操作:

更新:

$request = array(
   'request' => $this->input->get('request'),'device_id' => $this->input->get('device_id'),'launch_date'=> $this->input->get('launch_date'),'allowed_hours'=> $this->input->get('allowed_hours'),'site_id'=> $this->input->get('site_id'),'product'=>$this->input->get('product'),'software_version'=> $this->input->get('software_version'),'platform_os'=> $this->input->get('platform_os'),'platform'=> $this->input->get('platform'),'platform_model'=> $this->input->get('platform_model')
);

Codeigniter拥有自己的Output Class

$response = array(
    'response_code' => 200,'device_id'=> $this->input->get('device_id'),'product'=> 'mlc','prov_ur'=> NULL 
);

return $this->output
      ->set_content_type('Content-Type: application/json')
      ->set_output(json_encode($response));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读