1

我正在尝试如下设置 if-match 标头并使用 System.Net.Http 中可用的 HttpClient:

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);

我在之前的(获取)调用中从 adobe 收到的 Etag 是:

64E8BBA87ACFD0C2C84AF6E1193A3761.5334C3A18AB5A054FF3DBC33AFBDF6C

因此,当我尝试为 Put 请求添加相同的内容时,它给了我以下错误:

值“64E8BBA87ACFD0C2C84AF6E1193A3761.5334C3A18AB5A054FF3DBC33AFBDF6C”的格式无效。

如何解决这个问题?它清楚地表明格式无效,但我相信 Adob​​e 的 api 正在被数百万人使用。所以不知何故它是我的目标。

Adobe API的链接

调试时截图

4

1 回答 1

1

改为使用adobeRequest.Headers.TryAddWithoutValidation

于 2019-03-14T19:01:18.903 回答