首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >curl CLI到php curl

curl CLI到php curl
EN

Stack Overflow用户
提问于 2012-11-03 02:49:58
回答 3查看 440关注 0票数 0

我有一个可以工作的CLI

代码语言:javascript
复制
curl -X POST \
-H "X-Parse-Application-Id: ID" \
-H "X-Parse-REST-API-Key: KEY" \
-H "Content-Type: application/json" \
-d '{
    "channels": [
      "Giants",
      "Mets"
    ],
    "data": {
      "alert": "The Giants won against the Mets 2-3."
    }
  }' \
https://api.parse.com/1/push

它返回一个字符串{"result":"success"}

但是我的php curl

代码语言:javascript
复制
$post = json_encode(array('channels'=>array('Giants','Mets'),'data'=>array('alert'=>'The Giants won against the Mets 2-3')));
$ch = curl_init();
curl_setopt_array($ch, array(
            CURLOPT_URL             =>  'https://api.parse.com/1/push',
            CURLOPT_HTTPHEADER      =>  array(
                                            'X-Parse-Application-Id: ID',
                                            'X-Parse-REST-API-Key: KEY',
                                            'Content-Type: application/json'
                                        ),
            CURLOPT_POST            =>  true,
            CURLOPT_POSTFIELDS      =>  $post,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_RETURNTRANSFER => true
        ));
$res = curl_exec($ch);

if (curl_error($ch)) {
     echo "Curl error: " . curl_error($ch);
}
curl_close($ch);
echo $res;

显示消息“您正在寻找的页面不存在”。下面是一个"1“,它是没有错误的$res

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-03 03:02:19

您正在使用相同的密钥发送多个报头,因此每个报头都会清除前一个报头。你必须以数组的形式发送报头:

代码语言:javascript
复制
CURLOPT_HTTPHEADER => array(
    'Content-type: text/plain',
    'Content-length: 100',
    '...'
)
票数 1
EN

Stack Overflow用户

发布于 2012-11-03 03:01:19

您在数组中传递相同的密钥:"CURLOPT_HTTPHEADER“

请尝试:

代码语言:javascript
复制
curl_setopt_array($ch, array(
  CURLOPT_URL         =>  'https://api.parse.com/1/push',
  CURLOPT_HTTPHEADER      =>  "X-Parse-Application-Id: ID\n" .
        "X-Parse-REST-API-Key: KEY\n" .
        "Content-Type: application/json",
  CURLOPT_POST        =>  true,
  CURLOPT_POSTFIELDS  =>  $post,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_RETURNTRANSFER => true
));
票数 0
EN

Stack Overflow用户

发布于 2015-09-06 13:48:49

请尝试:

代码语言:javascript
复制
curl_setopt_array($ch, array(
      CURLOPT_URL         =>  'https://api.parse.com/1/push',
      CURLOPT_HTTPHEADER      =>  "X-Parse-Application-Id: ID\n" .
            "X-Parse-REST-API-Key: KEY\n" .
            "Content-Type: application/json",
      CURLOPT_POST        =>  true,
      CURLOPT_POSTFIELDS  =>  $post,
      CURLOPT_FOLLOWLOCATION => true,
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_SSL_VERIFYPEER => false//not SSL verification
    ));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13201305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档