Implementing negotiate request

No. No. 
I don't think `const` here should be interpreted as allowing multiple calls (similarly not marking the method as const is not preventing from calling it multiple times) - I added it only because I don't modify any class variables. But when I look at this now I agree this should not be const - `web_request` is kind of an interface definition and as such should not impose this kind of limitations on the implementation. I will revert this.