Bug 21960

Summary: HttpWebRequest NameValueHeaderValue does not allow quotes in key / values
Product: [Mono] Class Libraries Reporter: Valentin Polushkin <valentin>
Component: SystemAssignee: Marek Safar <masafa>
Status: RESOLVED FIXED    
Severity: normal CC: masafa, mono-bugs+mono, ramc
Priority: ---    
Version: unspecified   
Target Milestone: Untriaged   
Hardware: PC   
OS: Mac OS   
Tags: Is this bug a regression?: ---
Last known good build:

Description Valentin Polushkin 2014-08-08 13:01:47 UTC
Customer reports the following:

"I had a problem trying to send a multi-part request using http client. Basically as far as i could figure out it came down to xamarin's implementation of NameValueHeaderValue not allowing quotes in the key / values. This code worked in a c# .net 4.5, but the same code threw a format exception when run in PCL in my project."

using (var content = new MultipartFormDataContent())
{
    string filename = Guid.NewGuid().ToString() + ".png";
    content.Add(new StringContent(filename), "\"name\"");
    var imageContent = new ByteArrayContent(image.ImageBytes);
    imageContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
    {
        Name = "\"file\"",
        FileName = "\"" + filename + "\""
    };

    imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse(image.MimeType);
    content.Add(imageContent);

    var postResult = await client.PostAsync(uri, content);

    if (!postResult.IsSuccessStatusCode)
        return "";
        
    weedId = await postResult.Content.ReadAsStringAsync();

}

=== Xamarin Studio ===

Version 5.2 (build 386)
Installation UUID: bf29546e-1204-4ae2-8b91-ededbaeb1d15
Runtime:
Mono 3.6.0 ((no/f540f8a)
GTK+ 2.24.23 (Raleigh theme)

Package version: 306000039

=== Apple Developer Tools ===

Xcode 5.1.1 (5085)
Build 5B1008

=== Xamarin.Mac ===

Version:

=== Xamarin.Android ===

Version: 4.14.0 (Business Edition)
Android SDK: /Users/stevezarka/Library/Developer/Xamarin/android-sdk-macosx
Supported Android versions:
2.1   (API level 7)
2.2   (API level 8)
2.3   (API level 10)
3.1   (API level 12)
4.0.3 (API level 15)
4.4   (API level 19)
Java SDK: /usr
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

=== Xamarin.iOS ===

Version: 7.2.6.28 (Business Edition)
Hash: 606f31a
Branch: 
Build date: 2014-08-01 15:27:48-0400

=== Build Information ===

Release ID: 502000386
Git revision: e6a54dee5376e6e7a2d9982695b060fddc09e65d
Build date: 2014-08-04 14:03:28-04
Xamarin addins: 2b5a5c26ac2ee74c6e91a8d24ef44d0ca9cb74d0

=== Operating System ===

Mac OS X 10.9.4
Comment 1 Marek Safar 2014-08-12 04:36:14 UTC
Fixed in master and 3.8 branch
Comment 2 Ram Chandra 2014-09-23 11:00:16 UTC
To verify this issue, I tried to reproduce this issue but I am unable to reproduce this issue.

Could you please provide a sample test case? So, that I can reproduce and verify this issue.