@@ -84,6 +84,9 @@ class SimpleHTTPProcessorConfiguration(ApiProcessorSchema):
8484 description = "Use your authenticated connection to make the request" ,
8585 )
8686 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 )
8790
8891
8992class SimpleHTTPProcessor (
@@ -126,6 +129,8 @@ def process(self) -> dict:
126129 else None
127130 )
128131 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
129134 query_params = {kv .key : kv .value for kv in self ._config .query_params }
130135 body = json .loads (self ._config .body ) if self ._config .body else {}
131136 cookie_jar = prequests .requests .cookies .RequestsCookieJar ()
@@ -144,7 +149,12 @@ def process(self) -> dict:
144149
145150 if self ._config .method == HTTPMethod .GET :
146151 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 ),
148158 )
149159 elif self ._config .method == HTTPMethod .POST :
150160 response = prequests .post (
@@ -154,6 +164,7 @@ def process(self) -> dict:
154164 headers = headers ,
155165 cookies = cookie_jar ,
156166 _connection = connection ,
167+ timeout = (self ._config .connect_timeout , self ._config .read_timeout ),
157168 )
158169 elif self ._config .method == HTTPMethod .PUT :
159170 response = prequests .put (
@@ -163,14 +174,25 @@ def process(self) -> dict:
163174 headers = headers ,
164175 cookies = cookie_jar ,
165176 _connection = connection ,
177+ timeout = (self ._config .connect_timeout , self ._config .read_timeout ),
166178 )
167179 elif self ._config .method == HTTPMethod .DELETE :
168180 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 ),
170187 )
171188 elif self ._config .method == HTTPMethod .HEAD :
172189 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 ),
174196 )
175197 else :
176198 raise ValueError ("Invalid HTTP method" )
0 commit comments