Search code examples
c#.nethttpclientechosign

The format of value 'XXX.yyyyy' is invalid


I am trying to set up if-match header as following and making use of HttpClient available in System.Net.Http:

client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

var adobeRequest = new HttpRequestMessage(HttpMethod.Put, new Uri(url))
{
    Content = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json")
};

if (!string.IsNullOrEmpty(Etag))
    adobeRequest.Headers.Add("If-Match", Etag);

var response = client.SendAsync(adobeRequest);

Etag I received from adobe in previous(Get) call is :

64E8BBA87ACFD0C2C84AF6E1193A3761.5334C3A18AB5A054FF3DBC33AFBDF6C

So when I try to add the same for Put request, it gives me following error:

The format of value '64E8BBA87ACFD0C2C84AF6E1193A3761.5334C3A18AB5A054FF3DBC33AFBDF6C' is invalid.

How to resolve this issue? It clearly says format is not valid, however I believe Adobe's api is being used by million others. So somehow Its something from my end.

Link for Adobe api

Screenshot while debugging


Solution

  • Use adobeRequest.Headers.TryAddWithoutValidation instead.