Curl 如何在yii扩展中设置内容类型:application/json?

Curl 如何在yii扩展中设置内容类型:application/json?,curl,yii,yii-extensions,Curl,Yii,Yii Extensions,我正在为rest API使用yii扩展。但我无法在标题信息中设置内容类型。 请提供解决方案 我的REST文件test.php代码: <?php echo "In rest api"; print_r($_SERVER); ?> 我得到了以下输出: HTTP/1.1 100继续 HTTP/1.1 200 OK Date: Wed, 13 Nov 2013 18:14:10 GMT Server: Apache/2.2.21 (Win32) PHP/5.3.8 X-Powered-

我正在为rest API使用yii扩展。但我无法在标题信息中设置内容类型。

请提供解决方案

我的REST文件test.php代码:

<?php 
echo "In rest api";
print_r($_SERVER);
?>
我得到了以下输出:

HTTP/1.1 100继续

HTTP/1.1 200 OK
Date: Wed, 13 Nov 2013 18:14:10 GMT
Server: Apache/2.2.21 (Win32) PHP/5.3.8
X-Powered-By: PHP/5.3.8
Content-Length: 311
Content-Type: text/html


In rest apiArray
(
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:5.0) Gecko/20110619   Firefox/5.0
[HTTP_HOST] => localhost
[HTTP_ACCEPT] => */*
[CONTENT_LENGTH] => 143
[HTTP_EXPECT] => 100-continue
[CONTENT_TYPE] => multipart/form-data; boundary=----------------------------f0f331e79d34
[PATH] => C:\Windows\system32;C:\Windows;C:\Windows\system32\Wbem;C:\Program Files\Dell\DW WLAN Card;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files (x86)\cvsnt;
[SystemRoot] => C:\Windows
[COMSPEC] => C:\Windows\system32\cmd.exe
[PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
[WINDIR] => C:\Windows
[SERVER_SIGNATURE] => 
[SERVER_SOFTWARE] => Apache/2.2.21 (Win32) PHP/5.3.8
[SERVER_NAME] => localhost
[SERVER_ADDR] => 127.0.0.1
[SERVER_PORT] => 80
[REMOTE_ADDR] => 127.0.0.1
[DOCUMENT_ROOT] => C:/wamp/www/
[SERVER_ADMIN] => admin@localhost
[SCRIPT_FILENAME] => C:/wamp/www/testforget.php
[REMOTE_PORT] => 1287
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => POST
[QUERY_STRING] => 
[REQUEST_URI] => /testforget.php
[SCRIPT_NAME] => /testforget.php
[PHP_SELF] => /testforget.php
[REQUEST_TIME] => 1384365808
)

我得到

[CONTENT_TYPE] => multipart/form-data;
为什么我得到了这样的内容类型,但当我在请求中设置它时,它应该得到[content\u type]=>application/json?

试试:

Yii::app()->curl
             ->setOption(CURLOPT_HTTPHEADER, array('Content-type: application/json'))
             ->post("localhost/testforget.php",$data);
通过查看,我发现
CURLOPT\u HTTPHEADER
内容类型:…
选项应用于您的请求,但不应用于服务器响应。要更改服务器响应头,请在
test.php
文件中添加下一行

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

在回显任何数据之前。在数据上使用
json_encode()
,您将回送。

$data=array('value'=>'123')$output=Yii::app()->curl->post(“);使用此选项,我如何设置标题类型。执行此操作时,我得到了$output=Yii::app()->curl->setOption(CURLOPT_HTTPHEADER,'Content type:application/json')->post(“);我得到了“curl_setopt()[]:您必须传递一个对象或一个带有CURLOPT_HTTPHEADER、CURLOPT_QUOTE、CURLOPT_http200别名和CURLOPT_POSTQUOTE”参数的数组。此错误得到了此错误“curl_setopt()[]:您必须传递具有CURLOPT_HTTPHEADER、CURLOPT_QUOTE、CURLOPT_Http200别名和CURLOPT_POSTQUOTE参数的对象或数组”
header('Content-type: application/json');