コード例 #1
0
        /// <summary>
        /// 以Json形式添加数据
        /// </summary>
        /// <typeparam name="TModel"></typeparam>
        /// <param name="request"></param>
        /// <param name="model"></param>
        /// <returns></returns>
        public static HttpRequestMessage AddJsonContent <TModel>(this HttpRequestMessage request, TModel model) where TModel : class
        {
            var json = model == null ? "" : _jsonConvertor.Value
                       .Serialize(model);

            return(request.AddContent(value: json));
        }
コード例 #2
0
        /// <summary>
        /// 以字符串的形式添加数据
        /// </summary>
        /// <param name="request"></param>
        /// <param name="value"></param>
        /// <param name="mediaType"></param>
        /// <returns></returns>
        public static HttpRequestMessage AddContent(this HttpRequestMessage request,
                                                    string value,
                                                    string mediaType = "application/json")
        {
            if (string.IsNullOrWhiteSpace(value))
            {
                return(request);
            }

            var content = new StringContent(value, Constant.Encoding, mediaType);

            return(request.AddContent(content: content));
        }
コード例 #3
0
        /// <summary>
        /// 以键值对的形式添加数据
        /// </summary>
        /// <param name="request"></param>
        /// <param name="nameValue"></param>
        /// <returns></returns>
        public static HttpRequestMessage AddContent(this HttpRequestMessage request, IDictionary <string, string> nameValue)
        {
            foreach (var nv in nameValue)
            {
                var stringContent = new StringContent(nv.Value, Encoding.UTF8);
                stringContent.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("form-data")
                {
                    Name = nv.Key
                };
                request.AddContent(content: stringContent);
            }

            return(request);
        }
コード例 #4
0
        /// <summary>
        /// 添加文件Content
        /// </summary>
        /// <param name="request"></param>
        /// <param name="fileInfo"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static HttpRequestMessage AddContent(this HttpRequestMessage request, FileInfo fileInfo, string name = null)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                name = Guid.NewGuid().ToString();
            }

            var stream = new StreamContent(fileInfo.OpenRead());

            var content = new MultipartFormDataContent();

            content.Add(stream, name, fileInfo.Name);

            return(request.AddContent(content: content));
        }
コード例 #5
0
        public async Task <RestResponse> SendAsync <T>(HttpRequestMessage message, HttpMethod method, T content)
        {
            if (content != null)
            {
                message.AddContent(content, serializer);
            }

            using (var httpClient = CreateHttpClient())
            {
                var response = await httpClient.SendAsync(message);

                if (response.IsSuccessStatusCode)
                {
                    return(await RestResponse.CreateAsync(response));
                }
                else
                {
                    throw await RequestExceptionUtility.Make(response);
                }
            }
        }
コード例 #6
0
 /// <summary>
 /// 添加流Content
 /// </summary>
 /// <param name="request"></param>
 /// <param name="stream"></param>
 /// <returns></returns>
 public static HttpRequestMessage AddContent(this HttpRequestMessage request, Stream stream)
 {
     return(request.AddContent(content: new StreamContent(stream)));
 }
コード例 #7
0
        /// <summary>
        /// 以Json形式添加数据
        /// </summary>
        /// <typeparam name="TModel"></typeparam>
        /// <param name="request"></param>
        /// <param name="model"></param>
        /// <returns></returns>
        public static HttpRequestMessage AddJsonContent <TModel>(this HttpRequestMessage request, TModel model) where TModel : class
        {
            var json = model == null ? string.Empty : model.ToJsonString();

            return(request.AddContent(value: json));
        }
コード例 #8
0
 public static void AddContent(this HttpRequestMessage request, IEnumerable <KeyValuePair <string, string> > keyValuePairs)
 => request.AddContent(new FormUrlEncodedContent(keyValuePairs));
コード例 #9
0
        // Posting URL-encoded key values with HttpClient
        // http://ronaldrosiernet.azurewebsites.net/Blog/2013/12/07/posting_urlencoded_key_values_with_httpclient

        public static void AddContent(this HttpRequestMessage request, JObject jObj)
        => request.AddContent(new StringContent(jObj.ToString(), System.Text.Encoding.UTF8, "application/json"));