如何将带-F参数的Mailgun cURL请求转换为PHP脚本?
解决cURL到PHP的转换问题:处理
-F表单参数 没问题,我来帮你搞定这个转换!你提到的-F address='bob@example.com'是cURL里用来发送multipart/form-data格式的POST表单数据的参数,而你原来的PHP代码用的是GET请求,所以需要调整几个关键的curl选项来匹配这个逻辑。
修改后的完整PHP代码
<?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/bounces"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 将请求方法从GET改为POST(因为-F对应POST表单提交) curl_setopt($ch, CURLOPT_POST, true); // 设置表单数据,对应cURL里的-F参数 curl_setopt($ch, CURLOPT_POSTFIELDS, [ 'address' => 'bob@example.com' ]); curl_setopt($ch, CURLOPT_USERPWD, "api" . ":" . "API_KEY"); $result = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } curl_close($ch); // 可选:打印返回结果查看接口响应 print_r($result); ?>
关键修改说明
- 请求方法切换:原代码用的是
CURLOPT_CUSTOMREQUEST, "GET",但-F参数默认会让cURL发送POST请求,所以我们改成CURLOPT_POST, true(比手动设置CUSTOMREQUEST更规范,也更贴合cURL的原生行为)。 - 表单数据传递:
CURLOPT_POSTFIELDS接收数组格式的参数,数组的键值对就对应cURL里的-F参数(这里address是键,bob@example.com是值)。PHP会自动把这个数组编码成multipart/form-data格式,和cURL的-F行为完全一致。 - 扩展性提示:如果后续需要添加更多
-F参数,只需要在CURLOPT_POSTFIELDS的数组里继续添加键值对就行,比如-F reason='invalid_email'就对应'reason' => 'invalid_email'。
内容的提问来源于stack exchange,提问作者Developer
相关产品推荐
相关产品推荐

