@@ -84,6 +84,9 @@ class SimpleHTTPProcessorConfiguration(ApiProcessorSchema):
84
84
description = "Use your authenticated connection to make the request" ,
85
85
)
86
86
output_type : OutputType = Field (description = "The type of output to return" , default = OutputType .STRING )
87
+ connect_timeout : float = Field (description = "The connect timeout for the request" , default = 5.0 , le = 10.0 )
88
+ read_timeout : float = Field (description = "The read timeout for the request" , default = 10.0 , le = 30.0 )
89
+ user_agent : Optional [str ] = Field (description = "The user agent to use for the request" , default = None )
87
90
88
91
89
92
class SimpleHTTPProcessor (
@@ -126,6 +129,8 @@ def process(self) -> dict:
126
129
else None
127
130
)
128
131
headers = {kv .key : kv .value for kv in self ._config .headers }
132
+ if self ._config .user_agent :
133
+ headers ["User-Agent" ] = self ._config .user_agent
129
134
query_params = {kv .key : kv .value for kv in self ._config .query_params }
130
135
body = json .loads (self ._config .body ) if self ._config .body else {}
131
136
cookie_jar = prequests .requests .cookies .RequestsCookieJar ()
@@ -144,7 +149,12 @@ def process(self) -> dict:
144
149
145
150
if self ._config .method == HTTPMethod .GET :
146
151
response = prequests .get (
147
- self ._input .url , params = query_params , headers = headers , cookies = cookie_jar , _connection = connection
152
+ self ._input .url ,
153
+ params = query_params ,
154
+ headers = headers ,
155
+ cookies = cookie_jar ,
156
+ _connection = connection ,
157
+ timeout = (self ._config .connect_timeout , self ._config .read_timeout ),
148
158
)
149
159
elif self ._config .method == HTTPMethod .POST :
150
160
response = prequests .post (
@@ -154,6 +164,7 @@ def process(self) -> dict:
154
164
headers = headers ,
155
165
cookies = cookie_jar ,
156
166
_connection = connection ,
167
+ timeout = (self ._config .connect_timeout , self ._config .read_timeout ),
157
168
)
158
169
elif self ._config .method == HTTPMethod .PUT :
159
170
response = prequests .put (
@@ -163,14 +174,25 @@ def process(self) -> dict:
163
174
headers = headers ,
164
175
cookies = cookie_jar ,
165
176
_connection = connection ,
177
+ timeout = (self ._config .connect_timeout , self ._config .read_timeout ),
166
178
)
167
179
elif self ._config .method == HTTPMethod .DELETE :
168
180
response = prequests .delete (
169
- self ._input .url , params = query_params , headers = headers , cookies = cookie_jar , _connection = connection
181
+ self ._input .url ,
182
+ params = query_params ,
183
+ headers = headers ,
184
+ cookies = cookie_jar ,
185
+ _connection = connection ,
186
+ timeout = (self ._config .connect_timeout , self ._config .read_timeout ),
170
187
)
171
188
elif self ._config .method == HTTPMethod .HEAD :
172
189
response = prequests .head (
173
- self ._input .url , params = query_params , headers = headers , cookies = cookie_jar , _connection = connection
190
+ self ._input .url ,
191
+ params = query_params ,
192
+ headers = headers ,
193
+ cookies = cookie_jar ,
194
+ _connection = connection ,
195
+ timeout = (self ._config .connect_timeout , self ._config .read_timeout ),
174
196
)
175
197
else :
176
198
raise ValueError ("Invalid HTTP method" )
0 commit comments