I am attempting to communicate with the Graphql
api through powershell. According to Github, one must first do the following curl
call.
curl -H "Authorization: bearer token" -X POST -d " \
{ \
\"query\": \"query { viewer { login }}\" \
} \
" https://api.github.com/graphql
Using GitHub Enterprise, on powershell I do the following calls:
$url = "http://github.company.com/api/graphql" # note that it's http, not https
$body = "`"query`":`"query { viewer { login }}`"" #`
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("content-type","application/json")
$headers.Add("Authorization","bearer myTokenNumber")
$response = Invoke-WebRequest -Uri $url -Method POST -Body $body -Headers $headers
I keep getting the same error message, that there are problems parsing JSON.
I assume the error is with the body
tag, but I can't see how.
echo $body
gives "query":"query { viewer { login }}"
What is the issue here?
Exact error message:
Invoke-WebRequest : {"message":"Problems parsing JSON","documentation_url":"https://developer.github.com/v3"}
At line:1 char:13
+ $response = Invoke-WebRequest -Uri $url -Method POST -Body $body -Headers $heade ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebExc
eption
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
http
version? – Daniel