请问一个PHP CURL的POST提交遇到的有关问题
程序员文章站
2022-06-09 11:44:36
...
请教一个PHP CURL的POST提交遇到的问题
这两天在学习搜狐的sendCloud平台,遇到一个问题。
有一个接口:
官方给的文档是这样的:
于是,我在命令行输入这样:
提交正确,创建了一个邮件列表。
尝试构造表单提交,同样提交正确
但是,用PHP CURL提交,就出了问题,代码如下:
这时候总是返回 bad username/password,如果直接在浏览器打开接口的url也是现实bad username/password。
所以我猜测是数据没有提交上去。
百度了说设置curl_setopt($ch,CURLOPT_VERIFYHOST,true),但我一设置就报错
更加奇怪的是用同样的代码,调用/mail.send.json也就是发送邮件的接口,却能够正常提交。
请各位帮忙看看,十分感谢!
------解决思路----------------------
输出curl_error()和curl_errno看看?
------解决思路----------------------
你的表单得到
{"message":"error","errors":["Bad username / password!"]}
你的 php 代码得到
array(2) { ["message"]=> string(5) "error" ["errors"]=> array(1) { [0]=> string(24) "Bad username / password!" } }
你没有给出正确的用户名和口令,自然不能得到正确的结果
这两天在学习搜狐的sendCloud平台,遇到一个问题。
有一个接口:
https://sendcloud.sohu.com/webapi/list.create.json
官方给的文档是这样的:
* 请求接口(建议使用post请求,注意不要使用multipart-post):
/list.create
* 参数说明:
参数 类型 是否必须 说明 描述
api_user string 是 请求SC认证账号
api_key string 是 请求 SC认证密码
addres sstring 是 列表别称地址 例如:[email protected] Developers
name string 是 列表名称 不能大于16个中文字
description string 否 列表描述 不能大于85个中文字符
于是,我在命令行输入这样:
curl -d "api_user=*&api_key=*&[email protected]&name=demo&description=this is a demo list" https://sendcloud.sohu.com/webapi/list.create.json
提交正确,创建了一个邮件列表。
尝试构造表单提交,同样提交正确
但是,用PHP CURL提交,就出了问题,代码如下:
header('Content-Type:text/html;charset=utf-8');
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_URL, 'https://sendcloud.sohu.com/webapi/list.create.json');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = array(
'api_user' => '*',
'api_key' => '*',
'address' => [email protected]',
'name' => 'Abao新建的测试邮件列表',
'description' => '这是Abao新建的测试邮件列表',
);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
if(false === $result=curl_exec($ch)) {
echo 'false:
';
}
var_dump(json_decode($result,true));
curl_close($ch);
这时候总是返回 bad username/password,如果直接在浏览器打开接口的url也是现实bad username/password。
所以我猜测是数据没有提交上去。
百度了说设置curl_setopt($ch,CURLOPT_VERIFYHOST,true),但我一设置就报错
Notice: curl_setopt(): CURLOPT_SSL_VERIFYHOST no longer accepts the value 1, value 2 will be used instead in F:\www\sendCloud\demo.php on line 13
更加奇怪的是用同样的代码,调用/mail.send.json也就是发送邮件的接口,却能够正常提交。
请各位帮忙看看,十分感谢!
------解决思路----------------------
输出curl_error()和curl_errno看看?
------解决思路----------------------
你的表单得到
{"message":"error","errors":["Bad username / password!"]}
你的 php 代码得到
array(2) { ["message"]=> string(5) "error" ["errors"]=> array(1) { [0]=> string(24) "Bad username / password!" } }
你没有给出正确的用户名和口令,自然不能得到正确的结果
相关文章
相关视频
下一篇: 初探PHP单元测试利器:PHPUnit
推荐阅读
-
请问2个有关问题:php的imagecreatefromjpeg和一个ajax
-
请问一个PHP操作MYSQL的有关问题
-
请问一个PHP的简单有关问题。关于页面的动态内容
-
php用火狐poster工具模拟post提交的有关问题
-
请问一个PHP CURL的POST提交遇到的有关问题
-
PHP高手,我刚刚学PHP,在生成静态分页遇到了点有关问题,就是反页的有关问题,希望可以給出一个漂亮完整的翻页代码,多谢
-
php开发过程中遇到的有关问题(一个项目整体设计下的有关问题)
-
【PHP字符串】今天遇到一个很神奇的有关问题,请大家帮忙
-
第一次用php写webservice遇到一个很奇怪的有关问题,详细请看内容,有代码
-
请问一个PHP CURL的POST提交遇到的有关问题