{"commits":[{"author":{"name":"Markus Olsson","email":"fea8a6992108b6bfda0c59222a1afb2da2ede904@gmail.com"},"sha":"a7b4776a608bb2da9fd2938aa51cedfba11111f5","message":"Fix POST form value escaping in HttpHelper.cs\n\nWhen encoding the form data key value pairs for POST request in HttpHelper\nthe values is currently being encoded using System.Uri.EscapeUriString.\n\nEscapeUriString doesn't encode any of the reserved characters specified in\nRFC2396 (http://www.apps.ietf.org/rfc/rfc2396.html#sec-2.2). This causes\ncharacters such as the '+' sign to be sent over the wire unescaped instead of\nbeing sent as %2B. And if strings contains '=' it will break the request.\n\nThis in turn causes ASP.NET to treat it as a space sign instead of a plus. To\nreproduce simply send a plus sign in any string in the post data from a\nSignalR.Client application.\n\n```cs\nhub.Invoke(\"Send\", \"foo+bar\"); // Will be received server side as \"foo bar\"\n```\n\nNormally I'd use HttpUtility.UrlEncode for encoding forms but since\nSignalR.Client wasn't referencing System.Web I went for EscapeDataString\ninstead. Note however that EscapeDataString (as well as EscapeUriString)\nwill throw an UriFormatException for strings larger than 32766 characters.\nI don't know if this is an issue but if it is perhaps it should be considered\nreferencing System.Web or writing a custom escape method.","url":"https://api.github.com/repos/markus-olsson/SignalR/commits/a7b4776a608bb2da9fd2938aa51cedfba11111f5"}],"ref":"refs/heads/master","head":"a7b4776a608bb2da9fd2938aa51cedfba11111f5","size":1,"push_id":52993379}