Quantcast
Channel: Active questions tagged https - Stack Overflow
Viewing all articles
Browse latest Browse all 1854

downloading files from a website when the file is not in the url in c#

$
0
0

I'm currently working on a app that needs for me to be able to download osu beatmap files using there id, I tried just copying the link to the download aka for me it would behttps://osu.ppy.sh/beatmapsets/1012634/download and then just sending a web request to it and download the response but it didn't quite work it made a 200kb file that's not the beatmap

also I found this GitHub osu! API issues https://github.com/ppy/osu-api/issues/288 saying to add the cookies but I am not sure how to get that to work in c#.

the code i tried:

using System;using System.IO;using System.Net.Http;using System.Threading.Tasks;class Program{    static async Task Main(string[] args)    {        string downloadUrl = "https://osu.ppy.sh/beatmapsets/1012634/download";        using (HttpClient client = new HttpClient())        {            HttpResponseMessage response = await client.GetAsync(downloadUrl);            if (response.IsSuccessStatusCode)            {                // Read the response content as a byte array                byte[] fileBytes = await response.Content.ReadAsByteArrayAsync();                // Save the downloaded file                string filePath = @"C:\Users\chead\Downloads\map.osz";                File.WriteAllBytes(filePath, fileBytes);                Console.WriteLine($"File downloaded successfully to: {filePath}");            }            else            {                Console.WriteLine($"Failed to download file. Status code: {response.StatusCode}");            }        }        Console.WriteLine("That's it!");        Console.ReadKey();    }}

i tried using the osu! API but it doesn't seem like there is any endpoint for downloading a beatmap

i also tried what Download file using webclientsaid to do but it didn't work

here is the code i tried:

using System;using System.IO;using System.Net;using System.Threading.Tasks;class Program{    static void Main(string[] args)    {        WebClient wc = new WebClient();        string strFile = Path.Combine(Directory.GetCurrentDirectory(), "downloaded_file.osz");        wc.Credentials = new System.Net.NetworkCredential("me", "pw");        wc.Headers.Add("User-Agent", "my user agent");        wc.DownloadFile("https://osu.ppy.sh/beatmapsets/1012634/download", strFile);        Console.WriteLine("That's it!");        Console.ReadKey();    }}

i also tried this (it didn't work):

using System.Net;class Program{    static void Main(string[] args)    {        using (var client = new HttpClient())        {            using (var stream = client.GetStreamAsync("https://osu.ppy.sh/beatmapsets/1012634/download"))            {                using (var FileStream = new FileStream("map.osz", FileMode.OpenOrCreate))                {                    stream.Result.CopyTo(FileStream);                    Console.WriteLine($"Code Returned 0, saved to map.osz in the dir");                }            }        }        Console.ReadKey();    }}

any help would be greatly appreciated.


Viewing all articles
Browse latest Browse all 1854

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>