changes to x-task-id parsing logic for responses without a json body #27
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There's still a problem with how the connection logic handles adding the task ID.
In the output above I'd like to highlight a couple things.
{}
indicates that the response from the client is empty, so thetask_id
, despite being present, was not added to the dict.task_id
Looking at the logic here, it's because of how the parsing of the JSON body and try...catch statement are structured.
The response from this API contains no body, so
json_body = response.json()
is going to fail, but the if statement is nested inside this try...catch. Let's see what happens if I print the exception message.I get the following message.
Expecting value: line 1 column 1 (char 0)
This supports my suspicion, that it can't parse the empty value and is therefore raising an exception and not making it to the conditional statements.
I think the parsing of the hypothetical json body using a try...catch block and conditional statements should happen independently of each other to avoid this issue.