【问题标题】:C# post upload file like curl.exe" -FC# post 上传文件,如 curl.exe" -F
【发布时间】:2015-09-20 10:47:26
【问题描述】:

我试图在 C# 中复制以下 curl 功能,但无济于事。我收到 C# 代码返回的错误请求。 .NET 代码需要复制 curl 文件附件/上传功能。我将不胜感激。

"curl.exe" -F "attachment=@c:\data\img.jpg" "example.com"

    public static async void Post(string fileName)
    {
        string url = "example.com";
        var stream = new FileStream(fileName, FileMode.Open);
        string name = Path.GetFileName(fileName);

        var client = new HttpClient { Timeout = TimeSpan.FromMinutes(10) };

        var streamContent = new StreamContent(stream);
        streamContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data");
        streamContent.Headers.ContentDisposition.Name = "\"file\"";
        streamContent.Headers.ContentDisposition.FileName = "\"" + name + "\"";
        streamContent.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");

        var content = new MultipartFormDataContent { streamContent };
        HttpResponseMessage message = await client.PostAsync(url, content);
        string s = await message.Content.ReadAsStringAsync();
    }

【问题讨论】:

  • 能否请您提供您收到的确切错误消息?
  • 错误格式错误来自我发布到的服务本身。它似乎发布了数据,但我的代码显然没有做与 curl 调用相同的事情。

标签: c# curl upload dotnet-httpclient


【解决方案1】:

解决了我的问题。 “附件”必须是文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 2014-12-27
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多