Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 带有可选上载文件的HttpClient post表单_C#_Asp.net_.net_Httpclient_Dotnet Httpclient - Fatal编程技术网

C# 带有可选上载文件的HttpClient post表单

C# 带有可选上载文件的HttpClient post表单,c#,asp.net,.net,httpclient,dotnet-httpclient,C#,Asp.net,.net,Httpclient,Dotnet Httpclient,我有一个网络表单,有几个上传照片的选项(最多10个)内容类型设置为“多部分/表单数据”。我只知道如何上传一个文件,但不知道如何为其他9个可选文件创建HttpContent?使用适当的ContentDisposition标题创建MultipartContent,没有带来好运。我最多只能得到: Content-Disposition: form-data; name="bla bla bla"; 我需要发送带有空内容的post请求,以获得如下可选上传文件: Content-Disposition:

我有一个网络表单,有几个上传照片的选项(最多10个)<代码>内容类型设置为“多部分/表单数据”。我只知道如何上传一个文件,但不知道如何为其他9个可选文件创建
HttpContent
?使用适当的
ContentDisposition
标题创建
MultipartContent
,没有带来好运。我最多只能得到:

Content-Disposition: form-data; name="bla bla bla"; 我需要发送带有空内容的post请求,以获得如下可选上传文件:

Content-Disposition: form-data; name="bla bla bla"; filename="" 内容配置:表单数据;name=“bla bla bla”;filename=“”
任何想法都值得赞赏。

好的,我不知道这是否是解决我问题的最佳方案,但至少它是有效的:
1.为HttpContent创建新类(来自
HttpContent
的子类)。
2.初始化
内容配置
标题。
3.重写两个方法
trycomputellength
(返回false)和
SerializeToStreamAsync
(只是序列化任务的存根)

现在可以将此类添加到
MultipartFormDataContent

http请求内容如下所示:

----------[boundary string]
Content-Disposition: form-data; name="formFieldName"; filename=""

----------[boundary string]
----------[边界字符串]
内容处理:表单数据;name=“formFieldName”;filename=“”

-->-[boundary string]将Wireshark或Fiddler与浏览器一起使用,查看正确的HTTP内容的外观,然后在代码中重新生成……我知道正确的请求的外观。问题是如何在ContentDisposition中添加参数“filename”。空值或null值引发异常“无效参数”…我是指参数“filename”的值为空。我不明白您的确切意思。。。抱歉。只有在我实际添加了一些有效负载(如StreamContent)时,参数“filename”才会出现在内容处置标题中。在这种情况下,我有一个正确的内容处置标题。我想知道如何在没有实际负载的情况下创建一些HttpContent,但使用如下内容处置头:表单数据;name=“contentName”;filename=”“? ----------[boundary string]
Content-Disposition: form-data; name="formFieldName"; filename=""

----------[boundary string]