@@ -12,43 +12,56 @@ namespace Contentstack.Core.Internals
1212{
1313 internal class HttpRequestHandler
1414 {
15- ContentstackClient client
16- {
17- get ; set ;
18- }
15+ ContentstackClient client { get ; set ; }
16+
1917 internal HttpRequestHandler ( ContentstackClient contentstackClient )
2018 {
2119 client = contentstackClient ;
2220 }
23- public async Task < string > ProcessRequest ( string Url , Dictionary < string , object > Headers , Dictionary < string , object > BodyJson , string FileName = null , string Branch = null , bool isLivePreview = false , int timeout = 30000 , WebProxy proxy = null )
24- {
2521
26- String queryParam = String . Join ( "&" , BodyJson . Select ( kvp => {
27- var value = "" ;
28- if ( kvp . Value is string [ ] )
22+ public async Task < string > ProcessRequest (
23+ string Url ,
24+ Dictionary < string , object > Headers ,
25+ Dictionary < string , object > BodyJson ,
26+ string FileName = null ,
27+ string Branch = null ,
28+ bool isLivePreview = false ,
29+ int timeout = 30000 ,
30+ WebProxy proxy = null
31+ )
32+ {
33+ String queryParam = String . Join (
34+ "&" ,
35+ BodyJson . Select ( kvp =>
2936 {
30- string [ ] vals = ( string [ ] ) kvp . Value ;
31- value = String . Join ( "&" , vals . Select ( item =>
37+ var value = "" ;
38+ if ( kvp . Value is string [ ] )
3239 {
33- return String . Format ( "{0}={1}" , kvp . Key , item ) ;
34- } ) ) ;
35- return value ;
36- }
37- else if ( kvp . Value is Dictionary < string , object > )
38- value = JsonConvert . SerializeObject ( kvp . Value ) ;
39- else
40- return String . Format ( "{0}={1}" , kvp . Key , kvp . Value ) ;
41-
42- return String . Format ( "{0}={1}" , kvp . Key , value ) ;
40+ string [ ] vals = ( string [ ] ) kvp . Value ;
41+ value = String . Join (
42+ "&" ,
43+ vals . Select ( item =>
44+ {
45+ return String . Format ( "{0}={1}" , kvp . Key , item ) ;
46+ } )
47+ ) ;
48+ return value ;
49+ }
50+ else if ( kvp . Value is Dictionary < string , object > )
51+ value = JsonConvert . SerializeObject ( kvp . Value ) ;
52+ else
53+ return String . Format ( "{0}={1}" , kvp . Key , kvp . Value ) ;
4354
44- } ) ) ;
55+ return String . Format ( "{0}={1}" , kvp . Key , value ) ;
56+ } )
57+ ) ;
4558
46- var uri = new Uri ( Url + "?" + queryParam ) ;
59+ var uri = new Uri ( Url + "?" + queryParam ) ;
4760
4861 var request = ( HttpWebRequest ) WebRequest . Create ( uri ) ;
4962 request . Method = "GET" ;
5063 request . ContentType = "application/json" ;
51- request . Headers [ "x-user-agent" ] = "contentstack-delivery-dotnet/2.24.0" ;
64+ request . Headers [ "x-user-agent" ] = VersionUtility . GetSdkVersion ( ) ;
5265 request . Timeout = timeout ;
5366
5467 if ( proxy != null )
@@ -60,52 +73,68 @@ public async Task<string> ProcessRequest(string Url, Dictionary<string, object>
6073 {
6174 request . Headers [ "branch" ] = Branch ;
6275 }
63- if ( Headers != default ( IDictionary < string , string > ) ) {
64- foreach ( var header in Headers ) {
65- try {
76+ if ( Headers != default ( IDictionary < string , string > ) )
77+ {
78+ foreach ( var header in Headers )
79+ {
80+ try
81+ {
6682 request . Headers [ header . Key ] = header . Value . ToString ( ) ;
67- } catch {
68-
6983 }
84+ catch { }
7085 }
7186 }
7287
7388 foreach ( var plugin in client . Plugins )
7489 {
7590 request = await plugin . OnRequest ( client , request ) ;
76- } ;
91+ }
92+ ;
7793
7894 var serializedresult = JsonConvert . SerializeObject ( BodyJson ) ;
7995 byte [ ] requestBody = Encoding . UTF8 . GetBytes ( serializedresult ) ;
8096 StreamReader reader = null ;
8197 HttpWebResponse response = null ;
8298
83- try {
99+ try
100+ {
84101 response = ( HttpWebResponse ) await request . GetResponseAsync ( ) ;
85- if ( response != null ) {
102+ if ( response != null )
103+ {
86104 reader = new StreamReader ( response . GetResponseStream ( ) ) ;
87105
88106 string responseString = await reader . ReadToEndAsync ( ) ;
89107 foreach ( var plugin in client . Plugins )
90108 {
91- responseString = await plugin . OnResponse ( client , request , response , responseString ) ;
109+ responseString = await plugin . OnResponse (
110+ client ,
111+ request ,
112+ response ,
113+ responseString
114+ ) ;
92115 }
93116 return responseString ;
94- } else {
117+ }
118+ else
119+ {
95120 return null ;
96121 }
97- } catch ( Exception we ) {
122+ }
123+ catch ( Exception we )
124+ {
98125 throw we ;
99- } finally {
100- if ( reader != null ) {
126+ }
127+ finally
128+ {
129+ if ( reader != null )
130+ {
101131 reader . Dispose ( ) ;
102132 }
103133 if ( response != null )
104134 {
105- response . Dispose ( ) ;
135+ response . Dispose ( ) ;
106136 }
107137 }
108-
109138 }
110139
111140 //internal void updateLivePreviewContent(JObject response)
0 commit comments