php之 post请求传递1个空对象参数,特殊字符 {}

HttpGet 或 HttpPost 都不能传包含 ” 、“{“、”}”这样的参数,需要对特殊字符进行转义,
把 ” 转成%22,把 { 转成%7b,把 } 转成%7d

   String url = "http://127/signal/Resource?param={\"name\":\"service1\",\"param\":{\"id\":\"1\"}}";
   
   url = url.replace("\"", "%22").replace("{", "%7b").replace("}", "%7d");      

我请求的时候,需要传递 { }

 $data = (object)null;
 $data = json_encode($data);      // 请求参数

post 请求

public function curl_post($url,$data){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
    curl_setopt($ch, CURLOPT_MAXREDIRS, 4);
    curl_setopt($ch, CURLOPT_ENCODING, ""); //必须解压缩防止乱码
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; zh-CN) AppleWebKit/535.12 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/535.12");
    // 设置了请求头
    curl_setopt( $ch , CURLOPT_HTTPHEADER,  array (
         'Content-Type: application/json; charset=utf-8' ,
         'Content-Length: '   .  strlen ( $data )
     )
    ); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 15);
    $output = curl_exec($ch);
    curl_close($ch);
    print_r($output);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值