【问题标题】:HttpClient and MultipartFormDataContent = upload File an StringsHttpClient 和 MultipartFormDataContent = 上传文件和字符串
【发布时间】:2018-09-30 13:20:05
【问题描述】:

一开始我很抱歉我的英语很差:-)

我这两天就有问题了。我会将文件上传到https://www.share-online.biz/uploadapi api。但它不起作用。我用 C# 编写了这段代码:

FileInfo fileinfo = new FileInfo(DateiPfad);

HttpClient httpClient = new HttpClient();
MultipartFormDataContent form = new MultipartFormDataContent();

byte[] file = FileToArray(DateiPfad);

form.Add(new ByteArrayContent(file, 0, file.Length), "fn", "test2.rar");
form.Add(new StringContent(Benutzer), "username");
form.Add(new StringContent(Passwort), "password");
form.Add(new StringContent(sessionname), "upload_session");
form.Add(new StringContent("1"), "chunk_no");
form.Add(new StringContent("1"), "chunk_number");
form.Add(new StringContent(Convert.ToString(file.Length)), "filesize");

form.Add(new StringContent("1"), "finalize");

var response = httpClient.PostAsync(server, form).Result;

httpClient.Dispose();
string sd = response.Content.ReadAsStringAsync().Result;

File.WriteAllText("out.txt", sd);
MessageBox.Show("Server: " + sd);

我收到了这个请求:

*** EXCEPTION session creation/reuse failed - 09-30-2018, 1:09 pm ***

服务器、会话、密码和用户名来自另一个函数并且工作正常。

有人可以帮帮我吗?

【问题讨论】:

  • 请不要使用.Result,它会阻塞线程。请改用async await。这是非常糟糕的做法。此外,如果您从第三方 API 收到此错误,请尝试从他们的文档中了解这意味着什么

标签: c# httpclient


【解决方案1】:

对于这种类型的工作,我使用 Tiny.RestClient。 https://github.com/jgiacomini/Tiny.RestClient

构建多部分内容更容易。

另一个问题:您确定必须将用户名和密码作为内容发送吗?

【讨论】:

    猜你喜欢
    • 2015-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 1970-01-01
    相关资源
    最近更新 更多