PHP的CURL扩展,常用于模拟HTTP请求。
通常要POST数据时,
curl_setopt( $ch, CURLOPT_POSTFIELDS,$post_data);
如果$post_data是数组的话,有时可能会出错,报个500或400之类的Code,unexpected
parameter 'name'.
经过调试对比发现:
如果POST数据是数组,则HTTP头的Content-Type是multipart/form-data;
boundary=—————————-f924413ea122,这是传文件时才会被使用的content
type。想想刚刚报的那个错误,unexpected parameter
'name',这个name应该就是传文件时的文件名。而且这种方式因为有分界符bounday等会增加多余的网络流量。
而将POST数据转成key=value&a=b这种形式(通过http_build_query),Content-Type变为application/x-www-form-urlencoded,这是传统表单提交的content
type.
总结下,不需要上传文件的情况下,应对post提交的数据进行http_build_query,然后send出去,能实现更好的兼容性,更小的请求数据包。
1、 Apache自带的ab(apachebench)工具,测试代码效率、压力测试,可以来测试网站并发量和某个页面访问的