php - 将整个传入数据传递给 curl - Laravel
问题描述
我想将整个传入数据(即$request
)传递给 curl,不想发布到端点中的特定字段,subjectId=>1
因为我每次都针对不同的 endPoint 运行此 curl 请求。如果给出 , 下面的 curl 请求将起作用 CURLOPT_URL => $url . $subjectId
。由于每个端点的输入都发生了变化,我必须将输入中的所有内容传递给 curl ,我不能将其作为 arary 传递$subjectId
。有没有办法做到这一点?
目前,dd($Response);
退货null
我给邮递员这样的输入:
{
"subjectId":"1"
}
卷曲
public function getContentqApiPost(Request $request)
{
$token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.ey";
$headers = [
"Accept: application/json",
"Authorization: Bearer " . $token
];
$url="http://127.0.0.1:9000/api/courses/course-per-subject";
$subjectId = "?subjectId=$request->subjectId";
$ch = curl_init();
$curlConfig = array(
// CURLOPT_URL => $url . $subjectId,
CURLOPT_URL => $url . $request,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => $headers,
);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt_array($ch, $curlConfig);
$result = trim(curl_exec($ch));
$Response = json_decode($result, true);
if (curl_errno($ch)) {
$error_msg = curl_error($ch);
echo $error_msg;
}
curl_close($ch);
return $Response;
}
解决方案
如果您想将 $request 的所有参数传递给 curl:
$queryParams = '';
$delimeter = '?';
foreach($request->all() as $k => $v){
$queryParams .= "$delimeter$k=$v";
$delimeter = '&';
}
你也只能传递你想要的参数:
foreach($request->only(['subjectId']) as $k => $v){
// code here
}
最后你有:
CURLOPT_URL => $url . $queryParams,
推荐阅读
- excel - 从多个 Excel 文件复制数据
- ionic3 - Ionic 应用程序大小超过 60MB
- c# - 从 Xml 克隆一个节点并在没有 Xml NS 验证的其他地方使用它
- ios - 表格视图单元格中的 uicollection 视图出现错误:索引超出范围,为什么?
- javascript - 浏览器在附加版本控制后也没有选择最新代码?
- amazon-web-services - AWS Batch 成功后终止 EC2 实例
- ruby-on-rails - 如何将 act_as_votable gem 限制为 Rails 中的一个模型
- react-native - react native - 使用“prop-types”在组件中回调
- angular6 - 获取 TypeError: .finalize 不是 Rxjs6 中的函数
- node.js - 将全局变量注入节点上下文