使用 C# .NET 通过 Soundcloud API 连接和上传曲目 [英] Connecting to and uploading tracks with Soundcloud API using C# .NET

查看:32
本文介绍了使用 C# .NET 通过 Soundcloud API 连接和上传曲目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 C#.NET 将音轨上传到 Soundcloud.com,但没有任何适用于 .NET 的资源.有人可以发布链接或示例,说明如何使用 .NET 将音频文件上传到我的 Soundcloud.com 帐户吗?

I'm trying to upload an audio track to the Soundcloud.com using C#.NET, but there aren't any resources for .NET anywhere. Could someone post a link or an example of how to upload an audio file to my Soundcloud.com account using .NET?

谢谢,阿曼

推荐答案

要使用 soundcloud 的 REST API 上传音频,您需要处理 HTTP POST 相关问题 (RFC 1867).一般来说,ASP.NET 不支持使用 POST 发送多个文件/值,因此我建议您使用 Krystalware 库:http://aspnetupload.com/Upload-File-POST-HttpWebRequest-WebClient-RFC-1867.aspx

To upload an audio using soundcloud's REST API you need to take care of HTTP POST related issues (RFC 1867). In general, ASP.NET does not support sending of multiple files/values using POST, so I suggest you to use Krystalware library: http://aspnetupload.com/Upload-File-POST-HttpWebRequest-WebClient-RFC-1867.aspx

之后,您需要将正确的表单字段发送到 https://api.soundcloud.com/tracks 网址:

After that you need to send proper form fields to the https://api.soundcloud.com/tracks url:

  • 身份验证令牌 (oauth_token)
  • 曲目标题 (track[title])
  • 文件(track[asset_data])

示例代码:

using Krystalware.UploadHelper;
...

System.Net.ServicePointManager.Expect100Continue = false;
var request = WebRequest.Create("https://api.soundcloud.com/tracks") as HttpWebRequest;
//some default headers
request.Accept = "*/*";
request.Headers.Add("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.3");
request.Headers.Add("Accept-Encoding", "gzip,deflate,sdch");
request.Headers.Add("Accept-Language", "en-US,en;q=0.8,ru;q=0.6");

//file array
var files = new UploadFile[] { 
    new UploadFile(Server.MapPath("Downloads//0.mp3"), "track[asset_data]", "application/octet-stream") 
};
//other form data
var form = new NameValueCollection();
form.Add("track[title]", "Some title");
form.Add("track[sharing]", "private");
form.Add("oauth_token", this.Token);
form.Add("format", "json");

form.Add("Filename", "0.mp3");
form.Add("Upload", "Submit Query");
try
{
    using (var response = HttpUploadHelper.Upload(request, files, form))
    {
        using (var reader = new StreamReader(response.GetResponseStream()))
        {
            lblInfo.Text = reader.ReadToEnd();
        }
    }
}
catch (Exception ex)
{
    lblInfo.Text = ex.ToString();
}

示例代码允许您从服务器上传音频文件(注意 Server.MapPath 方法以形成文件路径)并获得 json 格式的响应(reader.ReadToEnd)

The example code allows you to upload an audio file from the server (notice the Server.MapPath method to form path to the file) and to get a response in json format (reader.ReadToEnd)

这篇关于使用 C# .NET 通过 Soundcloud API 连接和上传曲目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆