我有一个乌龟文件,希望从S3服务器发送到powershell上的Neptune实例。下面是我正在使用的命令
Invoke-RestMethod -Uri http://edwardspoc.civwhymjvz19.us-east-1.neptune.amazonaws.com:8182 -ContentType application/json -body '
{
"source" : "s3://cedwardsneptune/ATC.ttl",
"format" : "turtle",
"iamRoleArn" : "arn:aws:s3:::cedwardsneptune",
"region" : "us-east-1",
"failOnError" : "FALSE",
"parserConfiguration" : {
"namedGraphUri" : "http://purl.bioontology.org/ontology/ATC"
}
}'
这给了我以下错误
Invoke-RestMethod:无法发送具有这种动词类型的内容主体。
我做了细微的更改,但似乎没有任何效果。任何帮助表示赞赏!
答案 0 :(得分:1)
当您说您的REQUEST VERB不允许发送BODY时,您说的错误。
基本上,您正在执行GET并尝试发送正文。当GET动词不允许发送身体部位时。 可能您需要使用POST方法(请查看特定的Web服务文档)
为此,我建议您使用下一种格式:
$Cred = Get-Credential (If you could have)
$Url = "http://edwardspoc.civwhymjvz19.us-east-1.neptune.amazonaws.com:8182"
$Body = '{
"source" : "s3://cedwardsneptune/ATC.ttl",
"format" : "turtle",
"iamRoleArn" : "arn:aws:s3:::cedwardsneptune",
"region" : "us-east-1",
"failOnError" : "FALSE",
"parserConfiguration" : {
"namedGraphUri" : "http://purl.bioontology.org/ontology/ATC"
}
}'
Invoke-RestMethod -Method 'Post' -Uri $url -Credential $Cred -ContentType $contentType -Body $body -ContentType 'application/json' -OutFile output.csv
(*)当然-OutFile是可选的
关于JSON有一个名为ConvertFrom-JSON的cmdlet,可以在需要解析输出(即JSON)时使用。
p.e:
Invoke-RestMethod -Method 'Post' -Uri $url -Credential $Cred -Body $body |
ConvertFrom-JSON | Select field1, field2, field3
如果您期望将field1,field2,field3作为字段的输出(json)