【发布时间】:2016-08-30 15:35:21
【问题描述】:
我有一个案例,我需要将数据发布到具有重定向响应的 API 端点,我的意思是当我使用几个发布参数点击例如“xxx.com/api/v1/receive”时,它假设重定向到处理 API 提供者提供的身份验证以供进一步访问的页面,然后重定向回我的站点。
在我的代码中,我实现了这样的东西来发布数据
$data = ['key'=>'val'.etc...];
$post_data = http_build_query($data);
// open connection
$ch = curl_init();
// set option
curl_setopt($ch,CURLOPT_URL,$this->dev_url);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data);
curl_setopt($ch,CURLOPT_FRESH_CONNECT,true);
// execute
$result = curl_exec($ch);
当我使用 html 表单使用常规表单提交并发布一些参数时,它使用重定向的东西运行,就像它假设的那样,但是当我像上面的代码一样发布数据时,它没有响应。是否可以使用 curl 获得类似 html 表单的响应(重定向响应)?
【问题讨论】:
-
所以当你的表单动作是端点时,脚本按预期执行,但是当使用 CURL 并将动作更改为自身时,脚本没有按预期工作?
-
还要记得将 CURLOPT_POST 设置为 true
-
正确。我只是将 CURLOPT_POST 设置为 true,仍然没有响应
-
尝试将 CURLOPT_RETURNTRANSFER 设置为 true。如果您可以访问 API 端点,您还可以放置 die('QA') 或 return 'QA';作为第一行,为 API 脚本失败提供一些线索