【发布时间】:2021-02-28 12:50:57
【问题描述】:
我有这个 graphql 请求字符串:
$data_string = '{"query":"query {\n search(input: {\n projectId: \"'.$project_id.'\",\n search: \"'
.$expr.'\",\n limit: '.$page_size.',\n offset: '.$offset.'\n }) {\n total\n result\n }\n}"}';
接下来我想说:
$data_string = '{"query":"query {
search(input: {
projectId: \"'.$project_id.'\",
search: \"'.$expr.'\",
limit: '.$page_size.',
offset: '.$offset.'
}) {
total
result
}
}"}';
但是,由于某种原因,它不起作用。
这是我提出请求的方式:
$ch = curl_init($search_api_url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
附:我是 PHP 新手
【问题讨论】:
-
你想用
next thing做什么?用实际的换行符替换\n?尝试创建$data_string的数组,例如$data_string = ["query" => "graphql string content..."];然后json_encode($data_string)。它将减少报价维护任务 -
输入应该通过像突变这样的变量传递...和像
query search($input: API_DEFINED_SEARCH_INPUT_TYPE) { search(input: $input) { total result }这样的查询
标签: php graphql multilinestring