【问题标题】:Copy MultipartFormDataContent or pass it by value / Multiple send request with MultipartFormDataContent复制 MultipartFormDataContent 或按值传递/使用 MultipartFormDataContent 多次发送请求
【发布时间】:2018-08-14 12:36:35
【问题描述】:

我正在尝试连续 2 次使用 MultipartFormDataContent 发送发布请求。 第一次它工作正常。但是下次编译器告诉我 MultipartFormDataContent 变量已经被释放了。

Tlg Tlg = new Tlg("MyToken");
MultipartFormDataContent options = new MultipartFormDataContent();
options.Add(new StringContent("MyChatId"), "chat_id");
options.Add(new StringContent("Hello!"), "text");
Console.WriteLine(Tlg.Send("sendMessage", options: options).Result);//ОК
Console.WriteLine(Tlg.Send("sendMessage", options: options).Result);//Fails

Tlg.Send 只是通过带有 MultipartFormDataContent 变量(选项)的 httpClient.PostAsync 发送请求。

如何以最少的开销实现MultipartFormDataContent变量的多次使用?

对不起我的英语

【问题讨论】:

    标签: c# copy httpclient pass-by-value


    【解决方案1】:

    解决方案: 我只是将 JObject 参数传递给函数,然后在每次调用函数时创建新的 MultipartFormDataContent。

            MultipartFormDataContent o = new MultipartFormDataContent();
            if(options != null)
            {
                foreach (JProperty x in (JToken)options)
                {
                    o.Add(new StringContent((string)x.Value), x.Name);
                }
            }
    

    如果是 StreamContent 或其他,我会添加 StreamContent。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-17
      • 2014-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-27
      相关资源
      最近更新 更多