The two generic answers are:
- MergeContent as explained by dagget
- Wait/Notify as described here (originally by Andy)
These solutions should scale well and be considered in the first place. I personally find them a bit complex, so therefore I also propose a worarkound here.
If you are doing HTTP requests, perhaps you may only be processing a small amount of very small messages. In this case you can consider the following 'trick' to avoid complexity.
Rather than splitting, consider (ab)using an attribute
The easiest fix is by keeping all data together. Rather than splitting your message, just put a copy of the original content in an attribute. This attribute will still be available after your HTTP request, regardless of what is returned in the content.
The simple solution would be to use an ExtractText
right before the HTTP request, and create an attribute called something like original with the whole content.
Mandatory warning: Attributes are designed to be small and are therefore stored in memory. Hence putting large content in an attribute may consume your memory quickly.
A final workaround for possible future readers: If you control the HTTP service, or at least know the specs, consider whether it is desirable to let the output contain the input as well. Often not, but sometimes you get it anyway!