This repository was archived by the owner on Apr 13, 2025. It is now read-only.
Handle non-JSON responses#118
Merged
Merged
Conversation
Responses to attachment upload requests return a JSON body with the Content-Type header set to 'text/html'. If we sepcify that we accept 'application/json', then the server will return the proper Content-Type header. This required a re-run of VCRs. From the docs: Note that the Content-type of the server response can lie. This behavior, while not strictly correct according to the protocol, is intended. There is a bug in Microsoft Internet Explorer that will cause it to navigate away from a page executing a JavaScript client app at the end of an upload if the server returns the (correct) type of application/json. The server will return the correct Content-type, instead of text/html, if the client includes application/json in the request's Accept header. Source: https://www.pivotaltracker.com/help/api/#Uploading_File_Attachments
Contributor
|
+1 |
Contributor
Author
|
@forest Could you cut a release for this? |
Contributor
|
@shanecav84 done. |
Contributor
Author
|
Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
The
TrackerApi::Errorin #61 is due to aFaraday::Error::ParsingError. The default error message for an overloaded server for Pivotal Tracker's app server, Phusion Passenger, is an HTML response with a 503 status code.TrackerApi::Clientwas expecting all responses to be JSON, and so passed each response to the JSON parser ofFaraday::ResponseMiddleware, which raised theParsingError. This is fixed by only passing JSON-related content-types to the middleware parser. Faraday will handle other responses normally; e.g. raising aServerErrorfor overloaded server responses. Closes #117.In the course of sorting that out, I found that responses to attachment uploads also return
text/html, which would again raise aParsingError. This response is intentional as noted in the commit body for6038ba8. This is fixed by setting our request's
Acceptheader toapplication/json.