Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(C#)如何获得特定路径的下载url?_C#_Http_Web_Get - Fatal编程技术网

(C#)如何获得特定路径的下载url?

(C#)如何获得特定路径的下载url?,c#,http,web,get,C#,Http,Web,Get,假设我有一个下载url,当你得到它时,它会下载一个文件。 现在,这个文件不是txt或任何东西,它没有扩展名。 我如何将GET请求编码到URL,但使其下载到特定路径? 编辑:还有,我如何将其转换为TXT,然后从TXT中读取? 注意:它是一个get请求站点,可以立即下载文件,而不是您可以在浏览器中打开的站点上的文件 编辑2:它实际上返回xml,而不是文件,对不起 只需使用浏览器即可下载该文件。该文件的真实内容是什么 您可以尝试将内容类型配置为“应用程序/八位字节流”。 它向服务器请求字节内容 如果内

假设我有一个下载url,当你得到它时,它会下载一个文件。 现在,这个文件不是txt或任何东西,它没有扩展名。 我如何将GET请求编码到URL,但使其下载到特定路径? 编辑:还有,我如何将其转换为TXT,然后从TXT中读取? 注意:它是一个get请求站点,可以立即下载文件,而不是您可以在浏览器中打开的站点上的文件 编辑2:它实际上返回xml,而不是文件,对不起
只需使用浏览器即可下载该文件。

该文件的真实内容是什么

  • 您可以尝试将内容类型配置为“应用程序/八位字节流”。 它向服务器请求字节内容

  • 如果内容已经是常规文本,您只需将“.txt”添加到文件名中,就可以随时阅读


  • 你是这样做的,如果你的链接有一个像我用过的那样清晰的结尾,那就不重要了。或者,如果您真的想让
    GET
    部件显式显示,请使用
    RestSharp
    。现在,您甚至可以在代码中更改文件扩展名,这一点都不重要。因为您提到您的文件是xml,所以我加入了一些Linq2Xml,我认为您可能需要对它做些什么

    using System;
    using System.Diagnostics;
    using System.IO;
    using System.Net.Http;
    using System.Xml.Linq;
    using System.Linq;
    using RestSharp;
    
    namespace Get2File
    {
        internal class Program
        {
            private const string FallbackUrl = @"https://gist.github.com/Rusk85/8d189cd35295cfbd272d8c2121110e38/raw/4885d9ba37528faab50d9307f76800e2e1121ea2/example-xml-with-embedded-html.xml";
    
            private string _downloadedContent = null;
    
            private const string FileNameWithoutExtension = "File";
    
            private static void Main(string[] args)
            {
                var p = new Program();
                p.Get2FileWithRestSharp(fileExtensions:".xml");
                p.UseLinq2XmlOnFile();
            }
    
            private void Get2File(string altUrl = null, string fileExtensions = ".txt")
            {
                var url = !string.IsNullOrEmpty(altUrl)
                    ? altUrl
                    : FallbackUrl;
                var client = new HttpClient();
                var content = client.GetStringAsync(url).Result;
                _downloadedContent = content;
                var outputPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"{FileNameWithoutExtension}{fileExtensions}");
                File.WriteAllText(outputPath, content);
            }
    
            private void Get2FileWithRestSharp(string altUrl = null, string fileExtensions = ".txt")
            {
                var url = !string.IsNullOrEmpty(altUrl)
                    ? altUrl
                    : FallbackUrl;
                var urlAsUri = new Uri(url);
                var client = new RestClient(urlAsUri);
                var request = new RestRequest(Method.GET);
                var content = string.Empty;
                var result = client.Execute(request);
                content = result.Content;
                _downloadedContent = content;
                var output = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"{FileNameWithoutExtension}{fileExtensions}");
                File.WriteAllText(output, content);
            }
    
    
            private void UseLinq2XmlOnFile()
            {
                XElement xElement = XElement.Parse(_downloadedContent);
                var elements = xElement.Elements();
                var StringElement = elements.FirstOrDefault(e => e.Name == "String");
                var tranlateXAttribute = StringElement.Attributes().FirstOrDefault(attr => attr.Name == "translate");
                Debug.WriteLine(tranlateXAttribute.Value);
            }
        }
    }
    

    可能是Nope的副本,不是副本。URL不需要WebClient.download文件,它只需要GET请求。@WebCodingFun我的答案有什么问题?如果你愿意,我会免费加入一个“如何将文件内容读回内存”部分。内容是XML,但下载后没有扩展名。它将下载到浏览器的下载路径中。请阅读新编辑