【发布时间】:2019-02-27 23:30:40
【问题描述】:
下面是我使用 curl 的代码,它不像 HTML 表单那样真正重定向:
$curl = new \Curl\Curl();
$curl->setHeader('Content-Type', 'application/x-www-form-urlencoded');
$curl->setOpt(CURLOPT_FOLLOWLOCATION,true);
$curl->setOpt(CURLOPT_POST,true);
$curl->setOpt(CURLOPT_RETURNTRANSFER,true);
$curl->post('http://localpay.sample.test/make-payment',$params);
大家好,
以上是我使用 php package : curl/curl 制作的示例代码,
不过不用担心,我期待任何答案,使用纯 curl 的答案也可以,任何其他答案也可以,只要它使用 php 语言即可。
我想要实现的是如何进行 API 调用的工作方式与 HTML 表单完全相同。为什么我要实现这一目标?因为在 HTML 表单中我们需要点击提交按钮,我知道 javascript 可以触发,但我正在尝试使用完全后端语言构建自己的包。
我已经尝试在互联网上搜索问题,但没有一个是我所期望的。
下面是我的简单 html 表单,它确实重定向到所需的 url:
<form id="payment_confirmation" action="http://localpay.sample.test/make-payment" method="post"/>
Payer ID : <input type="text" name="payer_acc_id"><br>
Payee ID : <input type="text" name="payer_acc_id"><br>
<input type="hidden" name="signature" value="somePhpFunction()">
<button type="submit" value="Submit"> Submit</button>
</form>
以上是示例工作 HTML 表单,它重定向到该操作 url 路径,但在 curl 中我无法实现它,所以我如何通过使用 curl 或任何其他方式来实现它。
【问题讨论】:
-
因此浏览器向您的 PHP 发出请求,从而向 localpay 发出请求。本地支付重定向。您的代码应该使 PHP 自动遵循请求。还是你问如何让浏览器访问curl重定向到的URL?
-
Quentin,html 表单工作正常,但是 curl 发生的事情是它没有重定向到预期的 url 路径
-
是什么让你认为 cURL 没有被重定向?
-
我的浏览器没有重定向到预期的 url,而 HTML 表单确实将浏览器重定向到了预期的 url
-
为什么要重定向浏览器?请求是由 PHP/cURL 发出的,而不是浏览器。您的 PHP 代码中没有
header("location: ...")调用,因此您没有告诉浏览器转到不同的 URL。