public static Task <HttpResponseMessage> DoWithJsonData( Func <string, HttpContent, Task <HttpResponseMessage> > method, string url, string jsonStr, string authToken = null , IDictionary <string, string> headers = null ) { // これやらないと追記されていく httpClient.DefaultRequestHeaders.Clear(); // 最初からAccept/Content-Typeは付与しているけど上書き可 httpClient.AddContentHeader().AddAcceptHeader().AddAuthToken(authToken); if (headers != null) { foreach (var h in headers) { httpClient.AddHeader(h.Key, h.Value); } } var content = new StringContent(jsonStr ?? "", Encoding.UTF8, "application/json"); return(method(url, content)); }