复制MultipartFormDataContent或使用MultipartFormDataContent通过值/多个发送请求传递它

时间:2018-03-06 15:30:07

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

我尝试连续两次发送带有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只通过httpClient.PostAsync与MultipartFormDataContent变量(选项)发送请求。

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

抱歉我的英文

1 个答案:

答案 0 :(得分:0)

解决方案: 我只是将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。