.NET等效于curl,用于将文件上载到REST API
本文关键字:上载 文件 REST API 用于 curl NET | 更新日期: 2023-09-27 18:28:25
我需要上传一个ics文件到REST API。给出的唯一示例是curl命令。
使用curl上传文件的命令如下所示:
curl --user {username}:{password} --upload-file /tmp/myappointments.ics http://localhost:7070/home/john.doe/calendar?fmt=ics
我如何使用C#中的HttpWebRequest来做到这一点?
还要注意,我可能只将ics作为字符串(而不是实际的文件)。
我设法得到了一个有效的解决方案。怪癖是将请求中的方法设置为PUT,而不是POST。以下是我使用的代码示例:
var strICS = "text file content";
byte[] data = Encoding.UTF8.GetBytes (strICS);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create ("http://someurl.com");
request.PreAuthenticate = true;
request.Credentials = new NetworkCredential ("username", "password");;
request.Method = "PUT";
request.ContentType = "text/calendar";
request.ContentLength = data.Length;
using (Stream stream = request.GetRequestStream ()) {
stream.Write (data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse ();
response.Close ();