Skip to content

Conversation

@thomasp85
Copy link
Member

This PR encompasses a couple of (in my opinion) improvements to how HTTP requests are handled.

Currently it makes the following changes:

  • data can now be a raw vector instead of a string to avoid translating back and forth if the body is already in raw format
  • The promise interface has been changed to return all relevant information from the response, instead of only the body. The response is now resolved to a list with the elements status, headers, and body. It no longer throws an error on non-2XX responses

I would love to have all headers returned by default (that is response = NULL returns all headers), but AFAIK NNG doesn't allow that for non-obvious reasons

This PR is mainly intended as an inspiration

@shikokuchuo
Copy link
Member

@thomasp85 I'm closing this PR as your last remaining point about returning all response headers will now be implemented as part of #240 (specifically in commit d6b1718). This will be enabled by specifying ncurl(response = TRUE).

I implemented this for existing NNG without requiring the new 2.0 alpha builds by creating our own copies of the internal struct definitions, and defining our own iterable accessor.

@shikokuchuo shikokuchuo deleted the better-curl branch January 13, 2026 10:04
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