Exemplo n.º 1
0
        public bool DownloadFile(string url, string thumb_media_id, string saveDir, out string saveFileName, out string errHtml)
        {
            if (url.IndexOf("showqrcode") != -1)
            {
                return(DownloadQrCode(url, saveDir, out saveFileName, out errHtml));
            }

            saveFileName = string.Empty;
            errHtml      = string.Empty;
            bool            isSuc    = false;
            HttpWebResponse response = null;
            HttpWebRequest  request  = null;

            try
            {
                request = GetWebRequest(url, "GET");
                // if (url.IndexOf("showqrcode") != -1)
                //{
                //    request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0";
                //}

                response = (HttpWebResponse)request.GetResponse();
                if (!response.ContentType.ToLower().StartsWith("text/"))
                {
                    string disp = response.Headers.Get("Content-type");
                    string ext  = "." + disp.Substring(disp.LastIndexOf("/") + 1);
                    saveFileName = saveDir;
                    if (!saveFileName.EndsWith("\\"))
                    {
                        saveFileName += "\\";
                    }

                    saveFileName = thumb_media_id + ext;
                    string saveName = saveDir + saveFileName;
                    SaveBinaryFile(response, saveName);
                    isSuc = true;
                }
                else
                {
                    if (WebUtils.IsNullOrWhiteSpace(response.CharacterSet))
                    {
                        errHtml = GetResponseAsString(response, Encoding.UTF8);
                    }
                    else
                    {
                        Encoding encoding = Encoding.GetEncoding(response.CharacterSet);
                        errHtml = GetResponseAsString(response, encoding);
                    }
                    isSuc = false;
                }
            }
            finally
            {
                if (response != null)
                {
                    response.Close();
                }
                if (request != null)
                {
                    request = null;
                }
            }


            return(isSuc);
        }