假设我有一个下载URL,当你获取它时,它会下载一个文件。 现在,这个文件不是txt或任何东西,它没有扩展名。 我如何将GET请求编码到URL,但将其下载到某个路径? 编辑:另外,我将如何将其转换为TXT,然后从TXT读取? 注意:这是一个获取请求网站,即时下载文件,而不是在您可以在浏览器中打开的网站上的文件 编辑2:它实际上返回XML,而不是文件,对不起 只是使用浏览器下载它。(C#)如何获取下载网址到某个路径?
0
A
回答
0
该文件的真实内容是什么?
您可以尝试将内容类型配置为“application/octet-stream”。 它要求服务器输入字节内容。
如果内容已经是常规文本,您可以简单地将“.txt”添加到文件名,并且您可以随时阅读。
+0
内容为XML,但下载后没有扩展名。它会下载到浏览器的下载路径中。 – WebCodingFun
+0
阅读新的编辑 – WebCodingFun
0
你这样做,它应该无关紧要,如果你的链接有一个明确的结局,就像我用过的那样。或者如果你真的认真对待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);
}
}
}
相关问题
- 1. 如何设置下载路径并获取下载路径?
- 2. 如何获取JS中Ajax的当前网址/路径?
- 3. 如何从流星服务器获取网址路径?
- 4. 如何使用Perl获取顶级网址的路径信息?
- 5. Xamarin.Android:获取Firebase存储下载网址
- 6. php-Codeigniter:将某个网址路由到特定网址
- 7. 如何在开始之前取消Chrome下载并获取下载网址?
- 8. 如何从本地路径获取网络路径?
- 9. C++:如何获取变量的路径?
- 10. Codeigniter网址路径
- 11. 如何获取UIWebView加载的网址?
- 12. 如何直接从某些网站的网址下载图片?
- 13. 如何获取某个目录的父文件夹的路径?
- 14. 从网址获取路线
- 15. 如何下载文件并在本地获取路径位置
- 16. 如何获取下载文件的完整路径
- 17. C# - 读取文件下载的本地下载路径
- 18. 获取下YAML路径
- 19. 如何更改网址路径?
- 20. 如何获取YouTube视频的网址以下载它?
- 21. 如何从firebase storage PHP获取图片的下载网址?
- 22. Win32函数获取路径到C:\ ProgramData
- 23. 获取某个网址的某个部分
- 24. Blogger取代功能或网址路径
- 25. C - 获取目录路径
- 26. 获取的类C#路径
- 27. 如何获取JSON路径?
- 28. 如何获取R.java路径?
- 29. 如何获得IP地址的路径
- 30. 如何根据两个绝对路径获取相对路径?
的可能的复制[如何下载在C#中的URL文件?(http://stackoverflow.com/questions/307688/how-to-download-a-file-from-a-url -in-c) – theB
不是,不是重复。该URL不需要WebClient.DownloadFile,它只需要GET请求。 – WebCodingFun
@WebCodingFun我的回答有什么问题?如果您喜欢,我会免费提供“如何将文件内容读回内存”位。 –