diff --git a/Rest.Net/HttpListenerResponseExtensions.cs b/Rest.Net/HttpListenerResponseExtensions.cs
index 230cca7..ef1380a 100644
--- a/Rest.Net/HttpListenerResponseExtensions.cs
+++ b/Rest.Net/HttpListenerResponseExtensions.cs
@@ -50,11 +50,18 @@ namespace MontoyaTech.Rest.Net
/// Sets the response content type to a file and writes the given file content to the response.
///
///
- ///
+ /// The path of the file to send.
+ /// The mime type of the file to send, if null, it will be auto detected if possible.
/// This response.
- public static HttpListenerResponse WithFile(this HttpListenerResponse response, string filePath)
+ public static HttpListenerResponse WithFile(this HttpListenerResponse response, string filePath, string mimeType = null)
{
- response.ContentType = "application/octet-stream";
+ if (string.IsNullOrWhiteSpace(filePath))
+ throw new ArgumentException("filePath must not be null or empty");
+
+ if (string.IsNullOrWhiteSpace(mimeType))
+ mimeType = Path.GetExtension(filePath).GetMimeType();
+
+ response.ContentType = mimeType;
response.Headers.Add("Content-Deposition", $@"attachment; filename=""{Path.GetFileName(filePath)}""");
response.SendChunked = true;
diff --git a/Rest.Net/MimeTypeExtensions.cs b/Rest.Net/MimeTypeExtensions.cs
new file mode 100644
index 0000000..71fe5a1
--- /dev/null
+++ b/Rest.Net/MimeTypeExtensions.cs
@@ -0,0 +1,591 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MontoyaTech.Rest.Net
+{
+ internal static class MimeTypeExtensions
+ {
+ public static string GetMimeType(this string extension)
+ {
+ if (extension == null)
+ throw new ArgumentNullException("extension");
+
+ if (extension.StartsWith("."))
+ extension = extension.Substring(1);
+
+ switch (extension.ToLower())
+ {
+ case "323": return "text/h323";
+ case "3g2": return "video/3gpp2";
+ case "3gp": return "video/3gpp";
+ case "3gp2": return "video/3gpp2";
+ case "3gpp": return "video/3gpp";
+ case "7z": return "application/x-7z-compressed";
+ case "aa": return "audio/audible";
+ case "aac": return "audio/aac";
+ case "aaf": return "application/octet-stream";
+ case "aax": return "audio/vnd.audible.aax";
+ case "ac3": return "audio/ac3";
+ case "aca": return "application/octet-stream";
+ case "accda": return "application/msaccess.addin";
+ case "accdb": return "application/msaccess";
+ case "accdc": return "application/msaccess.cab";
+ case "accde": return "application/msaccess";
+ case "accdr": return "application/msaccess.runtime";
+ case "accdt": return "application/msaccess";
+ case "accdw": return "application/msaccess.webapplication";
+ case "accft": return "application/msaccess.ftemplate";
+ case "acx": return "application/internet-property-stream";
+ case "addin": return "text/xml";
+ case "ade": return "application/msaccess";
+ case "adobebridge": return "application/x-bridge-url";
+ case "adp": return "application/msaccess";
+ case "adt": return "audio/vnd.dlna.adts";
+ case "adts": return "audio/aac";
+ case "afm": return "application/octet-stream";
+ case "ai": return "application/postscript";
+ case "aif": return "audio/x-aiff";
+ case "aifc": return "audio/aiff";
+ case "aiff": return "audio/aiff";
+ case "air": return "application/vnd.adobe.air-application-installer-package+zip";
+ case "amc": return "application/x-mpeg";
+ case "application": return "application/x-ms-application";
+ case "art": return "image/x-jg";
+ case "asa": return "application/xml";
+ case "asax": return "application/xml";
+ case "ascx": return "application/xml";
+ case "asd": return "application/octet-stream";
+ case "asf": return "video/x-ms-asf";
+ case "ashx": return "application/xml";
+ case "asi": return "application/octet-stream";
+ case "asm": return "text/plain";
+ case "asmx": return "application/xml";
+ case "aspx": return "application/xml";
+ case "asr": return "video/x-ms-asf";
+ case "asx": return "video/x-ms-asf";
+ case "atom": return "application/atom+xml";
+ case "au": return "audio/basic";
+ case "avi": return "video/x-msvideo";
+ case "axs": return "application/olescript";
+ case "bas": return "text/plain";
+ case "bcpio": return "application/x-bcpio";
+ case "bin": return "application/octet-stream";
+ case "bmp": return "image/bmp";
+ case "c": return "text/plain";
+ case "cab": return "application/octet-stream";
+ case "caf": return "audio/x-caf";
+ case "calx": return "application/vnd.ms-office.calx";
+ case "cat": return "application/vnd.ms-pki.seccat";
+ case "cc": return "text/plain";
+ case "cd": return "text/plain";
+ case "cdda": return "audio/aiff";
+ case "cdf": return "application/x-cdf";
+ case "cer": return "application/x-x509-ca-cert";
+ case "chm": return "application/octet-stream";
+ case "class": return "application/x-java-applet";
+ case "clp": return "application/x-msclip";
+ case "cmx": return "image/x-cmx";
+ case "cnf": return "text/plain";
+ case "cod": return "image/cis-cod";
+ case "config": return "application/xml";
+ case "contact": return "text/x-ms-contact";
+ case "coverage": return "application/xml";
+ case "cpio": return "application/x-cpio";
+ case "cpp": return "text/plain";
+ case "crd": return "application/x-mscardfile";
+ case "crl": return "application/pkix-crl";
+ case "crt": return "application/x-x509-ca-cert";
+ case "cs": return "text/plain";
+ case "csdproj": return "text/plain";
+ case "csh": return "application/x-csh";
+ case "csproj": return "text/plain";
+ case "css": return "text/css";
+ case "csv": return "text/csv";
+ case "cur": return "application/octet-stream";
+ case "cxx": return "text/plain";
+ case "dat": return "application/octet-stream";
+ case "datasource": return "application/xml";
+ case "dbproj": return "text/plain";
+ case "dcr": return "application/x-director";
+ case "def": return "text/plain";
+ case "deploy": return "application/octet-stream";
+ case "der": return "application/x-x509-ca-cert";
+ case "dgml": return "application/xml";
+ case "dib": return "image/bmp";
+ case "dif": return "video/x-dv";
+ case "dir": return "application/x-director";
+ case "disco": return "text/xml";
+ case "dll": return "application/x-msdownload";
+ case "dll.config": return "text/xml";
+ case "dlm": return "text/dlm";
+ case "doc": return "application/msword";
+ case "docm": return "application/vnd.ms-word.document.macroenabled.12";
+ case "docx": return "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
+ case "dot": return "application/msword";
+ case "dotm": return "application/vnd.ms-word.template.macroenabled.12";
+ case "dotx": return "application/vnd.openxmlformats-officedocument.wordprocessingml.template";
+ case "dsp": return "application/octet-stream";
+ case "dsw": return "text/plain";
+ case "dtd": return "text/xml";
+ case "dtsconfig": return "text/xml";
+ case "dv": return "video/x-dv";
+ case "dvi": return "application/x-dvi";
+ case "dwf": return "drawing/x-dwf";
+ case "dwp": return "application/octet-stream";
+ case "dxr": return "application/x-director";
+ case "eml": return "message/rfc822";
+ case "emz": return "application/octet-stream";
+ case "eot": return "application/octet-stream";
+ case "eps": return "application/postscript";
+ case "etl": return "application/etl";
+ case "etx": return "text/x-setext";
+ case "evy": return "application/envoy";
+ case "exe": return "application/octet-stream";
+ case "exe.config": return "text/xml";
+ case "fdf": return "application/vnd.fdf";
+ case "fif": return "application/fractals";
+ case "filters": return "application/xml";
+ case "fla": return "application/octet-stream";
+ case "flr": return "x-world/x-vrml";
+ case "flv": return "video/x-flv";
+ case "fas": return "text/xml";
+ case "signxml": return "text/xml";
+ case "a2xml": return "text/xml";
+ case "fsscript": return "application/fsharp-script";
+ case "fsx": return "application/fsharp-script";
+ case "generictest": return "application/xml";
+ case "gif": return "image/gif";
+ case "group": return "text/x-ms-group";
+ case "gsm": return "audio/x-gsm";
+ case "gtar": return "application/x-gtar";
+ case "gz": return "application/x-gzip";
+ case "h": return "text/plain";
+ case "hdf": return "application/x-hdf";
+ case "hdml": return "text/x-hdml";
+ case "hhc": return "application/x-oleobject";
+ case "hhk": return "application/octet-stream";
+ case "hhp": return "application/octet-stream";
+ case "hlp": return "application/winhlp";
+ case "hpp": return "text/plain";
+ case "hqx": return "application/mac-binhex40";
+ case "hta": return "application/hta";
+ case "htc": return "text/x-component";
+ case "htm": return "text/html";
+ case "html": return "text/html";
+ case "htt": return "text/webviewhtml";
+ case "hxa": return "application/xml";
+ case "hxc": return "application/xml";
+ case "hxd": return "application/octet-stream";
+ case "hxe": return "application/xml";
+ case "hxf": return "application/xml";
+ case "hxh": return "application/octet-stream";
+ case "hxi": return "application/octet-stream";
+ case "hxk": return "application/xml";
+ case "hxq": return "application/octet-stream";
+ case "hxr": return "application/octet-stream";
+ case "hxs": return "application/octet-stream";
+ case "hxt": return "text/html";
+ case "hxv": return "application/xml";
+ case "hxw": return "application/octet-stream";
+ case "hxx": return "text/plain";
+ case "i": return "text/plain";
+ case "ico": return "image/x-icon";
+ case "ics": return "application/octet-stream";
+ case "idl": return "text/plain";
+ case "ief": return "image/ief";
+ case "iii": return "application/x-iphone";
+ case "inc": return "text/plain";
+ case "inf": return "application/octet-stream";
+ case "inl": return "text/plain";
+ case "ins": return "application/x-internet-signup";
+ case "ipa": return "application/x-itunes-ipa";
+ case "ipg": return "application/x-itunes-ipg";
+ case "ipproj": return "text/plain";
+ case "ipsw": return "application/x-itunes-ipsw";
+ case "iqy": return "text/x-ms-iqy";
+ case "isp": return "application/x-internet-signup";
+ case "ite": return "application/x-itunes-ite";
+ case "itlp": return "application/x-itunes-itlp";
+ case "itms": return "application/x-itunes-itms";
+ case "itpc": return "application/x-itunes-itpc";
+ case "ivf": return "video/x-ivf";
+ case "jar": return "application/java-archive";
+ case "java": return "application/octet-stream";
+ case "jck": return "application/liquidmotion";
+ case "jcz": return "application/liquidmotion";
+ case "jfif": return "image/pjpeg";
+ case "jnlp": return "application/x-java-jnlp-file";
+ case "jpb": return "application/octet-stream";
+ case "jpe": return "image/jpeg";
+ case "jpeg": return "image/jpeg";
+ case "jpg": return "image/jpeg";
+ case "js": return "application/x-javascript";
+ case "jsx": return "text/jscript";
+ case "jsxbin": return "text/plain";
+ case "latex": return "application/x-latex";
+ case "library-ms": return "application/windows-library+xml";
+ case "lit": return "application/x-ms-reader";
+ case "loadtest": return "application/xml";
+ case "lpk": return "application/octet-stream";
+ case "lsf": return "video/x-la-asf";
+ case "lst": return "text/plain";
+ case "lsx": return "video/x-la-asf";
+ case "lzh": return "application/octet-stream";
+ case "m13": return "application/x-msmediaview";
+ case "m14": return "application/x-msmediaview";
+ case "m1v": return "video/mpeg";
+ case "m2t": return "video/vnd.dlna.mpeg-tts";
+ case "m2ts": return "video/vnd.dlna.mpeg-tts";
+ case "m2v": return "video/mpeg";
+ case "m3u": return "audio/x-mpegurl";
+ case "m3u8": return "audio/x-mpegurl";
+ case "m4a": return "audio/m4a";
+ case "m4b": return "audio/m4b";
+ case "m4p": return "audio/m4p";
+ case "m4r": return "audio/x-m4r";
+ case "m4v": return "video/x-m4v";
+ case "mac": return "image/x-macpaint";
+ case "mak": return "text/plain";
+ case "man": return "application/x-troff-man";
+ case "manifest": return "application/x-ms-manifest";
+ case "map": return "text/plain";
+ case "master": return "application/xml";
+ case "mda": return "application/msaccess";
+ case "mdb": return "application/x-msaccess";
+ case "mde": return "application/msaccess";
+ case "mdp": return "application/octet-stream";
+ case "me": return "application/x-troff-me";
+ case "mfp": return "application/x-shockwave-flash";
+ case "mht": return "message/rfc822";
+ case "mhtml": return "message/rfc822";
+ case "mid": return "audio/mid";
+ case "midi": return "audio/mid";
+ case "mix": return "application/octet-stream";
+ case "mk": return "text/plain";
+ case "mmf": return "application/x-smaf";
+ case "mno": return "text/xml";
+ case "mny": return "application/x-msmoney";
+ case "mod": return "video/mpeg";
+ case "mov": return "video/quicktime";
+ case "movie": return "video/x-sgi-movie";
+ case "mp2": return "video/mpeg";
+ case "mp2v": return "video/mpeg";
+ case "mp3": return "audio/mpeg";
+ case "mp4": return "video/mp4";
+ case "mp4v": return "video/mp4";
+ case "mpa": return "video/mpeg";
+ case "mpe": return "video/mpeg";
+ case "mpeg": return "video/mpeg";
+ case "mpf": return "application/vnd.ms-mediapackage";
+ case "mpg": return "video/mpeg";
+ case "mpp": return "application/vnd.ms-project";
+ case "mpv2": return "video/mpeg";
+ case "mqv": return "video/quicktime";
+ case "ms": return "application/x-troff-ms";
+ case "msi": return "application/octet-stream";
+ case "mso": return "application/octet-stream";
+ case "mts": return "video/vnd.dlna.mpeg-tts";
+ case "mtx": return "application/xml";
+ case "mvb": return "application/x-msmediaview";
+ case "mvc": return "application/x-miva-compiled";
+ case "mxp": return "application/x-mmxp";
+ case "nc": return "application/x-netcdf";
+ case "nsc": return "video/x-ms-asf";
+ case "nws": return "message/rfc822";
+ case "ocx": return "application/octet-stream";
+ case "oda": return "application/oda";
+ case "odc": return "text/x-ms-odc";
+ case "odh": return "text/plain";
+ case "odl": return "text/plain";
+ case "odp": return "application/vnd.oasis.opendocument.presentation";
+ case "ods": return "application/oleobject";
+ case "odt": return "application/vnd.oasis.opendocument.text";
+ case "one": return "application/onenote";
+ case "onea": return "application/onenote";
+ case "onepkg": return "application/onenote";
+ case "onetmp": return "application/onenote";
+ case "onetoc": return "application/onenote";
+ case "onetoc2": return "application/onenote";
+ case "orderedtest": return "application/xml";
+ case "osdx": return "application/opensearchdescription+xml";
+ case "p10": return "application/pkcs10";
+ case "p12": return "application/x-pkcs12";
+ case "p7b": return "application/x-pkcs7-certificates";
+ case "p7c": return "application/pkcs7-mime";
+ case "p7m": return "application/pkcs7-mime";
+ case "p7r": return "application/x-pkcs7-certreqresp";
+ case "p7s": return "application/pkcs7-signature";
+ case "pbm": return "image/x-portable-bitmap";
+ case "pcast": return "application/x-podcast";
+ case "pct": return "image/pict";
+ case "pcx": return "application/octet-stream";
+ case "pcz": return "application/octet-stream";
+ case "pdf": return "application/pdf";
+ case "pfb": return "application/octet-stream";
+ case "pfm": return "application/octet-stream";
+ case "pfx": return "application/x-pkcs12";
+ case "pgm": return "image/x-portable-graymap";
+ case "pic": return "image/pict";
+ case "pict": return "image/pict";
+ case "pkgdef": return "text/plain";
+ case "pkgundef": return "text/plain";
+ case "pko": return "application/vnd.ms-pki.pko";
+ case "pls": return "audio/scpls";
+ case "pma": return "application/x-perfmon";
+ case "pmc": return "application/x-perfmon";
+ case "pml": return "application/x-perfmon";
+ case "pmr": return "application/x-perfmon";
+ case "pmw": return "application/x-perfmon";
+ case "png": return "image/png";
+ case "pnm": return "image/x-portable-anymap";
+ case "pnt": return "image/x-macpaint";
+ case "pntg": return "image/x-macpaint";
+ case "pnz": return "image/png";
+ case "pot": return "application/vnd.ms-powerpoint";
+ case "potm": return "application/vnd.ms-powerpoint.template.macroenabled.12";
+ case "potx": return "application/vnd.openxmlformats-officedocument.presentationml.template";
+ case "ppa": return "application/vnd.ms-powerpoint";
+ case "ppam": return "application/vnd.ms-powerpoint.addin.macroenabled.12";
+ case "ppm": return "image/x-portable-pixmap";
+ case "pps": return "application/vnd.ms-powerpoint";
+ case "ppsm": return "application/vnd.ms-powerpoint.slideshow.macroenabled.12";
+ case "ppsx": return "application/vnd.openxmlformats-officedocument.presentationml.slideshow";
+ case "ppt": return "application/vnd.ms-powerpoint";
+ case "pptm": return "application/vnd.ms-powerpoint.presentation.macroenabled.12";
+ case "pptx": return "application/vnd.openxmlformats-officedocument.presentationml.presentation";
+ case "prf": return "application/pics-rules";
+ case "prm": return "application/octet-stream";
+ case "prx": return "application/octet-stream";
+ case "ps": return "application/postscript";
+ case "psc1": return "application/powershell";
+ case "psd": return "application/octet-stream";
+ case "psess": return "application/xml";
+ case "psm": return "application/octet-stream";
+ case "psp": return "application/octet-stream";
+ case "pub": return "application/x-mspublisher";
+ case "pwz": return "application/vnd.ms-powerpoint";
+ case "qht": return "text/x-html-insertion";
+ case "qhtm": return "text/x-html-insertion";
+ case "qt": return "video/quicktime";
+ case "qti": return "image/x-quicktime";
+ case "qtif": return "image/x-quicktime";
+ case "qtl": return "application/x-quicktimeplayer";
+ case "qxd": return "application/octet-stream";
+ case "ra": return "audio/x-pn-realaudio";
+ case "ram": return "audio/x-pn-realaudio";
+ case "rar": return "application/octet-stream";
+ case "ras": return "image/x-cmu-raster";
+ case "rat": return "application/rat-file";
+ case "rc": return "text/plain";
+ case "rc2": return "text/plain";
+ case "rct": return "text/plain";
+ case "rdlc": return "application/xml";
+ case "resx": return "application/xml";
+ case "rf": return "image/vnd.rn-realflash";
+ case "rgb": return "image/x-rgb";
+ case "rgs": return "text/plain";
+ case "rm": return "application/vnd.rn-realmedia";
+ case "rmi": return "audio/mid";
+ case "rmp": return "application/vnd.rn-rn_music_package";
+ case "roff": return "application/x-troff";
+ case "rpm": return "audio/x-pn-realaudio-plugin";
+ case "rqy": return "text/x-ms-rqy";
+ case "rtf": return "application/rtf";
+ case "rtx": return "text/richtext";
+ case "ruleset": return "application/xml";
+ case "s": return "text/plain";
+ case "safariextz": return "application/x-safari-safariextz";
+ case "scd": return "application/x-msschedule";
+ case "sct": return "text/scriptlet";
+ case "sd2": return "audio/x-sd2";
+ case "sdp": return "application/sdp";
+ case "sea": return "application/octet-stream";
+ case "searchconnector-ms": return "application/windows-search-connector+xml";
+ case "setpay": return "application/set-payment-initiation";
+ case "setreg": return "application/set-registration-initiation";
+ case "settings": return "application/xml";
+ case "sgimb": return "application/x-sgimb";
+ case "sgml": return "text/sgml";
+ case "sh": return "application/x-sh";
+ case "shar": return "application/x-shar";
+ case "shtml": return "text/html";
+ case "sit": return "application/x-stuffit";
+ case "sitemap": return "application/xml";
+ case "skin": return "application/xml";
+ case "sldm": return "application/vnd.ms-powerpoint.slide.macroenabled.12";
+ case "sldx": return "application/vnd.openxmlformats-officedocument.presentationml.slide";
+ case "slk": return "application/vnd.ms-excel";
+ case "sln": return "text/plain";
+ case "slupkg-ms": return "application/x-ms-license";
+ case "smd": return "audio/x-smd";
+ case "smi": return "application/octet-stream";
+ case "smx": return "audio/x-smd";
+ case "smz": return "audio/x-smd";
+ case "snd": return "audio/basic";
+ case "snippet": return "application/xml";
+ case "snp": return "application/octet-stream";
+ case "sol": return "text/plain";
+ case "sor": return "text/plain";
+ case "spc": return "application/x-pkcs7-certificates";
+ case "spl": return "application/futuresplash";
+ case "src": return "application/x-wais-source";
+ case "srf": return "text/plain";
+ case "ssisdeploymentmanifest": return "text/xml";
+ case "ssm": return "application/streamingmedia";
+ case "sst": return "application/vnd.ms-pki.certstore";
+ case "stl": return "application/vnd.ms-pki.stl";
+ case "sv4cpio": return "application/x-sv4cpio";
+ case "sv4crc": return "application/x-sv4crc";
+ case "svc": return "application/xml";
+ case "svg": return "image/svg+xml";
+ case "swf": return "application/x-shockwave-flash";
+ case "t": return "application/x-troff";
+ case "tar": return "application/x-tar";
+ case "tcl": return "application/x-tcl";
+ case "testrunconfig": return "application/xml";
+ case "testsettings": return "application/xml";
+ case "tex": return "application/x-tex";
+ case "texi": return "application/x-texinfo";
+ case "texinfo": return "application/x-texinfo";
+ case "tgz": return "application/x-compressed";
+ case "thmx": return "application/vnd.ms-officetheme";
+ case "thn": return "application/octet-stream";
+ case "tif": return "image/tiff";
+ case "tiff": return "image/tiff";
+ case "tlh": return "text/plain";
+ case "tli": return "text/plain";
+ case "toc": return "application/octet-stream";
+ case "tr": return "application/x-troff";
+ case "trm": return "application/x-msterminal";
+ case "trx": return "application/xml";
+ case "ts": return "video/vnd.dlna.mpeg-tts";
+ case "tsv": return "text/tab-separated-values";
+ case "ttf": return "application/octet-stream";
+ case "tts": return "video/vnd.dlna.mpeg-tts";
+ case "txt": return "text/plain";
+ case "u32": return "application/octet-stream";
+ case "uls": return "text/iuls";
+ case "user": return "text/plain";
+ case "ustar": return "application/x-ustar";
+ case "vb": return "text/plain";
+ case "vbdproj": return "text/plain";
+ case "vbk": return "video/mpeg";
+ case "vbproj": return "text/plain";
+ case "vbs": return "text/vbscript";
+ case "vcf": return "text/x-vcard";
+ case "vcproj": return "application/xml";
+ case "vcs": return "text/plain";
+ case "vcxproj": return "application/xml";
+ case "vddproj": return "text/plain";
+ case "vdp": return "text/plain";
+ case "vdproj": return "text/plain";
+ case "vdx": return "application/vnd.ms-visio.viewer";
+ case "vml": return "text/xml";
+ case "vscontent": return "application/xml";
+ case "vsct": return "text/xml";
+ case "vsd": return "application/vnd.visio";
+ case "vsi": return "application/ms-vsi";
+ case "vsix": return "application/vsix";
+ case "vsixlangpack": return "text/xml";
+ case "vsixmanifest": return "text/xml";
+ case "vsmdi": return "application/xml";
+ case "vspscc": return "text/plain";
+ case "vss": return "application/vnd.visio";
+ case "vsscc": return "text/plain";
+ case "vssettings": return "text/xml";
+ case "vssscc": return "text/plain";
+ case "vst": return "application/vnd.visio";
+ case "vstemplate": return "text/xml";
+ case "vsto": return "application/x-ms-vsto";
+ case "vsw": return "application/vnd.visio";
+ case "vsx": return "application/vnd.visio";
+ case "vtx": return "application/vnd.visio";
+ case "wav": return "audio/wav";
+ case "wave": return "audio/wav";
+ case "wax": return "audio/x-ms-wax";
+ case "wbk": return "application/msword";
+ case "wbmp": return "image/vnd.wap.wbmp";
+ case "wcm": return "application/vnd.ms-works";
+ case "wdb": return "application/vnd.ms-works";
+ case "wdp": return "image/vnd.ms-photo";
+ case "webarchive": return "application/x-safari-webarchive";
+ case "webtest": return "application/xml";
+ case "wiq": return "application/xml";
+ case "wiz": return "application/msword";
+ case "wks": return "application/vnd.ms-works";
+ case "wlmp": return "application/wlmoviemaker";
+ case "wlpginstall": return "application/x-wlpg-detect";
+ case "wlpginstall3": return "application/x-wlpg3-detect";
+ case "wm": return "video/x-ms-wm";
+ case "wma": return "audio/x-ms-wma";
+ case "wmd": return "application/x-ms-wmd";
+ case "wmf": return "application/x-msmetafile";
+ case "wml": return "text/vnd.wap.wml";
+ case "wmlc": return "application/vnd.wap.wmlc";
+ case "wmls": return "text/vnd.wap.wmlscript";
+ case "wmlsc": return "application/vnd.wap.wmlscriptc";
+ case "wmp": return "video/x-ms-wmp";
+ case "wmv": return "video/x-ms-wmv";
+ case "wmx": return "video/x-ms-wmx";
+ case "wmz": return "application/x-ms-wmz";
+ case "wpl": return "application/vnd.ms-wpl";
+ case "wps": return "application/vnd.ms-works";
+ case "wri": return "application/x-mswrite";
+ case "wrl": return "x-world/x-vrml";
+ case "wrz": return "x-world/x-vrml";
+ case "wsc": return "text/scriptlet";
+ case "wsdl": return "text/xml";
+ case "wvx": return "video/x-ms-wvx";
+ case "webp": return "image/webp";
+ case "woff": return "application/font-woff";
+ case "x": return "application/directx";
+ case "xaf": return "x-world/x-vrml";
+ case "xaml": return "application/xaml+xml";
+ case "xap": return "application/x-silverlight-app";
+ case "xbap": return "application/x-ms-xbap";
+ case "xbm": return "image/x-xbitmap";
+ case "xdr": return "text/plain";
+ case "xht": return "application/xhtml+xml";
+ case "xhtml": return "application/xhtml+xml";
+ case "xla": return "application/vnd.ms-excel";
+ case "xlam": return "application/vnd.ms-excel.addin.macroenabled.12";
+ case "xlc": return "application/vnd.ms-excel";
+ case "xld": return "application/vnd.ms-excel";
+ case "xlk": return "application/vnd.ms-excel";
+ case "xll": return "application/vnd.ms-excel";
+ case "xlm": return "application/vnd.ms-excel";
+ case "xls": return "application/vnd.ms-excel";
+ case "xlsb": return "application/vnd.ms-excel.sheet.binary.macroenabled.12";
+ case "xlsm": return "application/vnd.ms-excel.sheet.macroenabled.12";
+ case "xlsx": return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
+ case "xlt": return "application/vnd.ms-excel";
+ case "xltm": return "application/vnd.ms-excel.template.macroenabled.12";
+ case "xltx": return "application/vnd.openxmlformats-officedocument.spreadsheetml.template";
+ case "xlw": return "application/vnd.ms-excel";
+ case "xml": return "text/xml";
+ case "xmta": return "application/xml";
+ case "xof": return "x-world/x-vrml";
+ case "xoml": return "text/plain";
+ case "xpm": return "image/x-xpixmap";
+ case "xps": return "application/vnd.ms-xpsdocument";
+ case "xrm-ms": return "text/xml";
+ case "xsc": return "application/xml";
+ case "xsd": return "text/xml";
+ case "xsf": return "text/xml";
+ case "xsl": return "text/xml";
+ case "xslt": return "text/xml";
+ case "xsn": return "application/octet-stream";
+ case "xss": return "application/xml";
+ case "xtp": return "application/octet-stream";
+ case "xwd": return "image/x-xwindowdump";
+ case "z": return "application/x-compress";
+ case "zip": return "application/x-zip-compressed";
+
+ default: return "application/octet-stream";
+ }
+ }
+ }
+}
diff --git a/Rest.Net/Rest.Net.csproj b/Rest.Net/Rest.Net.csproj
index 5b727f3..fdea28b 100644
--- a/Rest.Net/Rest.Net.csproj
+++ b/Rest.Net/Rest.Net.csproj
@@ -17,7 +17,7 @@
MontoyaTech.Rest.Net
MontoyaTech.Rest.Net
True
- 1.3.0
+ 1.3.1
Logo_Symbol_Black_Outline.png