Currently we are using HttpWebRequest class available in .Net framework to make requests. It works fine. But in the long run we would desire to have more control over requests. For example we won't able to support mutual authentication using HttpWebRequest. (since there is no callbacks to know if server requested client certificate during TLS handshake)
Also to support HTTP 2.0 in future, we would need direct control over request object.
Microsoft have not made HTTP 2 support for .Net framework, although they do support HTTP 2 for native applications under win8 and later.
I am working on this change and once it becomes stable I will merge with master.
See this this issue I made on corefx for issues on mutual authentication.
See this issue for HTTP 2 support pending for .Net framework.
Look forward to take advantage of Task (async/await)
We may be able to fork SslStream class in corefx to support HTTP 2 under Win8 and later. This may be done by setting ALPN flags in native calls made by SslStream class under the hood. its an option I am currently investigating. However if that forking is going to be time consuming, we could wait until ALPN is supported by MS.