Skip to content

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