是否有任何类,库或一些代码可以帮助我使用HTTPWebrequest上传文件?
编辑2:
我不想上传到WebDAV文件夹或类似的东西.我想模拟浏览器,就像您将头像上传到论坛或通过Web应用程序中的表单上传文件一样.上传到使用multipart/form-data的表单.
编辑:
WebClient不能满足我的要求,所以我正在寻找HTTPWebrequest的解决方案.
我想将此数据发布到Web API服务器:
public sealed class SomePostRequest
{
public int Id { get; set; }
public byte[] Content { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
将此代码用于服务器:
[Route("Incoming")]
[ValidateModel]
public async Task<IHttpActionResult> PostIncomingData(SomePostRequest requestData)
{
// POST logic here
}
Run Code Online (Sandbox Code Playgroud)
这个 - 对于客户:
var client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:25001/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
var content = new FormUrlEncodedContent(new Dictionary<string, string>
{
{ "id", "1" },
{ "content", "123" }
});
var result = await client.PostAsync("api/SomeData/Incoming", content);
result.EnsureSuccessStatusCode();
Run Code Online (Sandbox Code Playgroud)
一切正常(至少,调试器在断点处停止PostIncomingData
).
由于有一个 …
我有一个小的C#web应用程序.如何获得允许用户通过HTTP POST发送文件的c#代码.它应该能够发送文本文件,图像文件,excel,csv,doc(所有类型的文件)而不使用流阅读器和所有.
我有这个代码示例作为另一个问题的答案发布(使用C#通过HTTP POST发送文件).除了一个问题,它工作正常.它用双引号括起HTTP头中的边界:
多部分/格式的数据; 边界= "04982073-787d-414B-a0d2-8e8a1137e145"
这窒息了我试图打电话的网络服务.浏览器没有那些双引号.我需要一些方法告诉.NET让他们离开.
private System.IO.Stream Upload(string actionUrl, string paramString, Stream paramFileStream, byte [] paramFileBytes)
{
HttpContent stringContent = new StringContent(paramString);
HttpContent fileStreamContent = new StreamContent(paramFileStream);
HttpContent bytesContent = new ByteArrayContent(paramFileBytes);
using (var client = new HttpClient())
using (var formData = new MultipartFormDataContent())
{
formData.Add(stringContent, "param1", "param1");
formData.Add(fileStreamContent, "file1", "file1");
formData.Add(bytesContent, "file2", "file2");
var response = client.PostAsync(actionUrl, formData).Result;
if (!response.IsSuccessStatusCode)
{
return null;
}
return response.Content.ReadAsStreamAsync().Result;
}
}
Run Code Online (Sandbox Code Playgroud) 使用带C#的File.Copy可以使用两个URL吗?我得到了不同的错误:
不支持URI格式
不支持给定路径的格式.
有一个类似的问题,但没有回答.
我希望从server1中的目录复制到另一个服务器,并且URL是http
谢谢