I am trying to connect to a graphql API using the follwing:
let
query = Web.Contents(
"http:****************",
[
Headers=[
#"Content-Type"="application/json",
#"x-token-id"="1************",
#"x-token-value"="W*************"
],
Content = Text.ToBinary(
"{""query"": ""query GetEvents { events( filter: { time: { between: [""2024-09-11T00:00:00Z"", ""2024-09-12T00:00:00Z""] } }, first: 1 ) { edges { node { id } } }}""}"
),
Timeout = #duration(0,0,5,0), // Set timeout to 5 minutes
ManualStatusHandling = {500} // Handle 500 errors manually
]
),
// Handle the response
StatusCode = Value.Metadata(query)[Response.Status], // Extract status code from metadata
RawResponse = Text.FromBinary(query), // Convert raw binary response to text
ParsedResult = try Json.Document(query) otherwise RawResponse, // Try parsing the result or return raw if it fails
// Build a structured output for debugging
Result = if StatusCode = 500 then
// Return an error with detailed information
Error.Record("ServerError", "500 Internal Server Error", [
RawResponse = RawResponse,
StatusCode = StatusCode
])
else
ParsedResult
in
// Return the detailed result with status and raw response for debugging
[StatusCode = StatusCode, RawResponse = RawResponse, Result = Result];
I am getting this error:
statusCode\":500,\"code\":\"FST_REPLY_FROM_INTERNAL_SERVER_ERROR\",\"error\":\"Internal Server Error\",\"message\":\"expect header not supported\"}
Is there anyway to prevent web.Contents from attaching the expect header?
I was able to force the query to work by creating running nginx x server using the follwoing config so I know it is coming from web.contents:
http {
server {
listen 80;
location /graphql {
proxy_set_header Expect "";
proxy_pass https://d*********************;
}
}
}
Thank you for your help