Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix retried requests #124

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

jstamerj
Copy link

When first creating a request, this.options.data is converted to a string (if it's not already a string). That string is then converted to a buffer and transmitted as the request body.
When retrying a request, that buffer was stringified, then this string was converted to another buffer. The retry request body then looks bogus (like '0=123&1=34&2=105&3=100&4=34' ...)
The content-type header was also trounced with the value 'application/x-www-form-urlencoded'.

This fix puts the Buffer data in a different variable and prevents the data from being re-stringified and re-bufferified when when retry() is called.

@easternbloc
Copy link
Collaborator

Hi, this needs a rebase before I can take a look.

Also any chance you can write some tests for this?

@shannonchou
Copy link

Yeah, I faced the same problem. It seems that the request body is invalid after calling retry(). I paste a log snippet below.

ESC[32m[2014-10-27 17:08:39.730] [INFO] [default] - ESC[39mdid not return within 30000 ms, retry it
ESC[32m[2014-10-27 17:08:52.461] [INFO] [default] - ESC[39msend Hipchat unsuccessfully, return: {"error":{"code":400,"message":"The request requires a properly encoded body with the 'content-type' header set to '['application/json']","type":"Bad Request"}}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants