C# ';system.argumentexception';上载多部分时

C# ';system.argumentexception';上载多部分时,c#,windows-phone,multipartform-data,dotnet-httpclient,C#,Windows Phone,Multipartform Data,Dotnet Httpclient,我试图使用System.Net.Http.HttpClient发布多部分数据,但当我实例化我的内容时,出现以下异常: A first chance exception of type 'System.ArgumentException' occurred in System.Net.Http.DLL An exception of type 'System.ArgumentException' occurred in System.Net.Http.DLL and wasn't handled

我试图使用System.Net.Http.HttpClient发布多部分数据,但当我实例化我的内容时,出现以下异常:

A first chance exception of type 'System.ArgumentException' occurred in System.Net.Http.DLL
An exception of type 'System.ArgumentException' occurred in System.Net.Http.DLL and wasn't handled before a managed/native boundary
e: System.ArgumentException: The format of value '---###---' is invalid.
Parameter name: boundary
   at System.Net.Http.MultipartContent.ValidateBoundary(String boundary)
   at System.Net.Http.MultipartContent..ctor(String subtype, String boundary)
   at System.Net.Http.MultipartFormDataContent..ctor(String boundary)
   at RestClientUploadFoto.MultipartStackOverflow.<postMultipart>d__2.MoveNext()
public async Task postMultipart()
{
    var client = new HttpClient();
    client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "multipart/form-data");

    // boundary      
    String boundary = "---###---"; // should never occur in your data

    // This is the postdata
    MultipartFormDataContent content = new MultipartFormDataContent(boundary);
    content.Add(new StringContent("12", Encoding.UTF8), "userId");
    content.Add(new StringContent("78", Encoding.UTF8), "noOfAttendees");
    content.Add(new StringContent("chennai", Encoding.UTF8), "locationName");
    content.Add(new StringContent("32.56", Encoding.UTF8), "longitude");
    content.Add(new StringContent("32.56", Encoding.UTF8), "latitude");

    Console.Write(content);
    // upload the file sending the form info and ensure a result.
    // it will throw an exception if the service doesn't return a valid successful status code
    await client.PostAsync(fileUploadUrl, content)
        .ContinueWith((postTask) =>
        {
            postTask.Result.EnsureSuccessStatusCode();
        });

}
#
在MIME边界中无效

发件人:

“multipart”媒体类型的唯一必需全局参数是 边界参数,由来自 通过邮件网关已知非常健壮的字符集,以及 不以空格结尾。(如果显示边界分隔符行 以空格结尾,空格必须假定为 由网关添加,并且必须删除。)它是正式指定的 由下列BNF:

boundary := 0*69<bchars> bcharsnospace

bchars := bcharsnospace / " "

bcharsnospace := DIGIT / ALPHA / "'" / "(" / ")" /
                 "+" / "_" / "," / "-" / "." /
                 "/" / ":" / "=" / "?"
边界:=0*69 bcharsnospace
bchars:=bcharsnospace/“”
bcharsnospace:=数字/ALPHA/“/”(“/”)/
"+" / "_" / "," / "-" / "." /
"/" / ":" / "=" / "?"
因此,基本上,您应该使用不包含
#
的边界字符串。我建议使用一个也不包含连字符的,因为边界线无论如何都会有连字符(在开始和结束处)。把它们也放在边界上有点混乱

除非您需要特定的边界,否则我建议您只调用无参数构造函数,它将使用随机GUID作为边界。

#
在MIME边界中无效

发件人:

“multipart”媒体类型的唯一必需全局参数是 边界参数,由来自 通过邮件网关已知非常健壮的字符集,以及 不以空格结尾。(如果显示边界分隔符行 以空格结尾,空格必须假定为 由网关添加,并且必须删除。)它是正式指定的 由下列BNF:

boundary := 0*69<bchars> bcharsnospace

bchars := bcharsnospace / " "

bcharsnospace := DIGIT / ALPHA / "'" / "(" / ")" /
                 "+" / "_" / "," / "-" / "." /
                 "/" / ":" / "=" / "?"
边界:=0*69 bcharsnospace
bchars:=bcharsnospace/“”
bcharsnospace:=数字/ALPHA/“/”(“/”)/
"+" / "_" / "," / "-" / "." /
"/" / ":" / "=" / "?"
因此,基本上,您应该使用不包含
#
的边界字符串。我建议使用一个也不包含连字符的,因为边界线无论如何都会有连字符(在开始和结束处)。把它们也放在边界上有点混乱


除非您需要特定的边界,否则我建议您只调用无参数构造函数,它将使用随机GUID作为边界。

那么异常的详细信息是什么?请发布完整的堆栈跟踪,包括消息。这似乎是不言自明的,不是吗<代码>-###--是无效的边界。你试过使用不同的边界字符串吗?谢谢,我不知道边界是什么,我将首先阅读它。那么异常的细节是什么?请发布完整的堆栈跟踪,包括消息。这似乎是不言自明的,不是吗<代码>-###--是无效的边界。你试过使用不同的边界字符串吗?谢谢,我不知道边界是什么,我要先读一读。你知道如何从那里得到反应体吗?@eeadev:我不知道你说的“从那里”是什么意思,但这听起来应该是一个新问题。是的,对;这是帖子:你知道如何从那里得到回应吗?@eeadev:我不知道你所说的“从那里”是什么意思,但这听起来应该是一个新问题。是的,对;以下是帖子: