【发布时间】:2021-02-25 22:48:27
【问题描述】:
我正在尝试使用 NerdGraph API 从 NewRelic 中提取一些指标数据。它在使用 curl 时完美运行,但我在从 groovy/java 客户端调用它时遇到问题。 NerdGraph API 请求如下:
{
actor {
entitySearch(query: "name like 'my-service-name'") {
results {
entities {
tags {
key
values
}
guid
}
}
}
}
}
以下 curl 调用工作正常:
curl --location --request POST 'https://api.newrelic.com/graphql' --header 'API-Key: MY-API-KEY' --header 'Content-Type: application/json' --data-raw '{"query":"{\n actor {\n entitySearch(query: \"name like '\''my-service-name'\''\") {\n results {\n entities {\n tags {\n key\n values\n }\n guid\n }\n }\n }\n }\n}"}'
在我的 groovy 代码中,我尝试像这样实例化请求:
String request = '''
{ "query": "{
actor {
entitySearch(query: "name like 'my-service-name'") {
results {
entities {
tags {
key
values
}
guid
}
}
}
}
}"
}
'''
..或者这个:
String request = '{"query":"{\n actor {\n entitySearch(query: \"name like \'my-service-name\'\") {\n results {\n entities {\n tags {\n key\n values\n }\n guid\n }\n }\n }\n }\n}"}'
两者都不起作用。我收到https://api.newrelic.com/graphql -> 400:错误请求 我应该如何转义特殊字符(引号和双引号)以使其正常工作?
【问题讨论】:
标签: graphql newrelic graphql-java