php的curl方法里面默认header的Content-Type的值为multipart/form-data。但使用该值你去nginx或者apache日志查看访问日志的话就会出现编码问题不利于解读。所以当我们不需要上传文件,只需要上传key,value的格式时最好改为application/x-www-form-urlencoded。但使用该值需要注意的是它是按k=v&k=v的格式,但通常我们是传数组所以服务端接收时就会出现问题。所以我们需要更改值以避免该问题,以下是关键代码
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($argument));
我们需要用http_build_query将数组转为k=v的格式,这样nginx日志不会出现问题且服务端能正常接收