使用curl和wget发送post请求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用curl和wget发送post请求相关的知识,希望对你有一定的参考价值。

参考技术A wget

wget --post-data="user=user1&pass=pass1&submit=Login" http://domain.com/path/page_need_login.php

2.curl (可直接发送格式化请求例如json)

提交json数据需要加header,否则需'json="phone":"13521389587","password":"test"’

curl -H "Content-type: application/json" -X POST -d '"phone":"13521389587","password":"test"' http://domain/apis/users.json

普通请求

curl $URL -d "2880[]=105&pid=2880&p=最佳&count=1&receipt=1&poll=投票"

结果

Array

(

)

发送curl请求的函数

//发送curl请求的函数
function curl_request($url, $post = false, $data=array(), $https = false){
//使用curl_init初始化一个curl请求
$ch = curl_init($url);
//默认为get请求不需要设置请求方式和请求参数
//如果是post请求
if($post){
//设置请求方式
curl_setopt($ch, CURLOPT_POST, true);
//设置请求参数
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
//默认发送http请求,如果是https,需要做特殊设置
if($https){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//验证证书 设置为false表示不验证
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//验证证书和主机是否匹配
}
//默认情况下,curl_exec返回true|false,如果要得到返回数据,需要设置CURLOPT_RETURNTRANSFER
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//发送请求
$res = curl_exec($ch);
if(!$res){
//请求失败,通过curl_error获取错误信息
$error = curl_error($ch);
//重新组装返回结果。如果返回的是数组代表请求失败
$res = array(
‘error‘ => $error
);
}
//关闭curl请求
curl_close($ch);
//返回结果给调用方
return $res;
}

以上是关于使用curl和wget发送post请求的主要内容,如果未能解决你的问题,请参考以下文章

发送 POST 请求 wget

转:PHP中的使用curl发送请求(GET请求和POST请求)

curl发送get和post请求

C语言发送post请求数据程序

curl发送get请求带param

PHP cURL无法向api发送POST请求