You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.3 KiB
C#
51 lines
1.3 KiB
C#
using JumpKick.HttpLib.Provider;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace JumpKick.HttpLib.Builder
|
|
{
|
|
public partial class RequestBuilder
|
|
{
|
|
|
|
#region Headers
|
|
private HeaderProvider headerProvider;
|
|
|
|
public RequestBuilder Headers(object header)
|
|
{
|
|
Dictionary<String, String> headers = new Dictionary<String, String>();
|
|
PropertyInfo[] properties;
|
|
#if NETFX_CORE
|
|
properties = header.GetType().GetTypeInfo().DeclaredProperties.ToArray();
|
|
#else
|
|
properties = header.GetType().GetProperties();
|
|
#endif
|
|
|
|
foreach (var property in properties)
|
|
{
|
|
headers.Add(property.Name, System.Uri.EscapeDataString(property.GetValue(header, null).ToString()));
|
|
}
|
|
headerProvider = new DictionaryHeaderProvider(headers);
|
|
return this;
|
|
}
|
|
|
|
public RequestBuilder Headers(IDictionary<String, String> header)
|
|
{
|
|
this.headerProvider = new DictionaryHeaderProvider(header);
|
|
return this;
|
|
}
|
|
|
|
public RequestBuilder Headers(HeaderProvider headerProvider)
|
|
{
|
|
this.headerProvider = headerProvider;
|
|
return this;
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
}
|