Hi, I'm trying upload an image using the WWWForm class, but I also need to add a cookie to the header for my session authentication. For a normal POST request this works fine, but when I add binary data into it, it doesn't work. My code is as follows: Code (csharp): private static WWW BuildRequest(string path, Dictionary<string, string> paramList = null, byte[] binaryData = null) { string url = string.Format("{0}{1}/?t={2}", apiUrl, path, Utils.UnixTimeStampUTC()); if (paramList != null && binaryData == null) { WWWForm postForm = new WWWForm(); foreach (var key in paramList.Keys) { postForm.AddField(key, paramList[key]); } var jar = SessionCookie(); var headers = postForm.headers; foreach (var i in jar.Keys) { headers.Add(i, jar[i]); } if(binaryData != null) postForm.AddBinaryData("image_data", binaryData, "screenshot.png", "image/png"); return new WWW(url, postForm.data, headers); } else { return new WWW(url, null, SessionCookie()); } } The only way I can get it to work is to change this: Code (csharp): return new WWW(url, postForm.data, headers); to this: Code (csharp): return new WWW(url, postForm); But that doesn't allow me to pass my extra headers in then. I've used Charles to look at the differences and when I pass in my header, my content type is appliction/x-www-form-urlencoded, but when I don't pass any headers in, the content type is multipart/form-data; Am I doing some thing wrong here?