ADF调用REST API返回406 NotAcceptable错误排查求助
核心问题根源
406 NotAcceptable错误的直接原因是:ADF调用接口时发送的Accept请求头类型不被服务器支持。错误信息明确说明服务器仅支持application/ld+json,而ADF的REST连接器默认可能发送的是application/json类型的Accept头;而Arc测试时的默认Accept头更宽泛(比如包含*/*或application/ld+json),所以能正常得到响应。
另外,GET请求本身不需要Content-Type头(因为没有请求体),API文档里的Content-Type要求大概率是针对POST/PUT等带请求体的接口,和GET请求无关,ADF提示的REST connector ignores any "Content-Type" header specified in additional headers when request body is empty也验证了这一点。
具体解决步骤
添加正确的Accept请求头
在ADF REST活动的「附加请求头」中配置:Accept: application/ld+json这会明确告诉服务器你接受
application/ld+json格式的响应,匹配服务器支持的MIME类型。保留Authorization头
继续保留Authorization: Bearer @{activity('GetToken').output.access}的配置,当前错误并非授权导致,但接口本身需要授权验证,正常请求时必须携带。移除无用的Content-Type头
由于GET请求无请求体,ADF会忽略这个头,且服务器也不需要,直接删除即可,避免不必要的配置冲突。
为什么Arc测试正常?
Arc这类工具默认发送的Accept头通常包含*/*(接受所有格式),或者会根据接口返回自动适配,服务器会返回它支持的application/ld+json格式;而你在Arc中即使添加Content-Type,因为是GET请求,服务器不会校验这个头,所以不会影响请求结果。
内容的提问来源于stack exchange,提问作者tony

