예제 #1
0
        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));
        }