假設我有一個下載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我的回答有什麼問題?如果您喜歡,我會免費提供「如何將文件內容讀回內存」位。 –