PHP的CURL组件是非常常用的HTTP请求模拟器。
通常要发送post数据时,我已经习惯于这样写:
curl_setopt( $ch, CURLOPT_POSTFIELDS,$post_data);
但是在向某一个服务器发送请求的时候,服务器返回500。而使用socket方式连接上去发送请求,返回正常的数据。
尝试发送到一个仅有的网页上,可以看到使用数组发送POST数据时,收到的CONTENT_TYPE如下:
代码如下 | 复制代码 |
[CONTENT_TYPE] => multipart/form-data; boundary=—————————-f924413ea122 |
可见,当CURLOPT_POSTFIELDS被设置为数组时,HTTP头会发送Content_type: application/x-www-form-urlencoded。这个是正常的网页