| @@ -12,6 +12,7 @@ from core.tools.entities.tool_entities import ToolInvokeMessage | |||
| from core.tools.errors import ToolProviderCredentialValidationError | |||
| from core.tools.tool.tool import Tool | |||
| API_TOOL_DEFAULT_TIMEOUT = (10, 60) | |||
| class ApiTool(Tool): | |||
| api_bundle: ApiBasedToolBundle | |||
| @@ -211,19 +212,19 @@ class ApiTool(Tool): | |||
| # do http request | |||
| if method == 'get': | |||
| response = ssrf_proxy.get(url, params=params, headers=headers, cookies=cookies, timeout=10, follow_redirects=True) | |||
| response = ssrf_proxy.get(url, params=params, headers=headers, cookies=cookies, timeout=API_TOOL_DEFAULT_TIMEOUT, follow_redirects=True) | |||
| elif method == 'post': | |||
| response = ssrf_proxy.post(url, params=params, headers=headers, cookies=cookies, data=body, timeout=10, follow_redirects=True) | |||
| response = ssrf_proxy.post(url, params=params, headers=headers, cookies=cookies, data=body, timeout=API_TOOL_DEFAULT_TIMEOUT, follow_redirects=True) | |||
| elif method == 'put': | |||
| response = ssrf_proxy.put(url, params=params, headers=headers, cookies=cookies, data=body, timeout=10, follow_redirects=True) | |||
| response = ssrf_proxy.put(url, params=params, headers=headers, cookies=cookies, data=body, timeout=API_TOOL_DEFAULT_TIMEOUT, follow_redirects=True) | |||
| elif method == 'delete': | |||
| response = ssrf_proxy.delete(url, params=params, headers=headers, cookies=cookies, data=body, timeout=10, allow_redirects=True) | |||
| response = ssrf_proxy.delete(url, params=params, headers=headers, cookies=cookies, data=body, timeout=API_TOOL_DEFAULT_TIMEOUT, allow_redirects=True) | |||
| elif method == 'patch': | |||
| response = ssrf_proxy.patch(url, params=params, headers=headers, cookies=cookies, data=body, timeout=10, follow_redirects=True) | |||
| response = ssrf_proxy.patch(url, params=params, headers=headers, cookies=cookies, data=body, timeout=API_TOOL_DEFAULT_TIMEOUT, follow_redirects=True) | |||
| elif method == 'head': | |||
| response = ssrf_proxy.head(url, params=params, headers=headers, cookies=cookies, timeout=10, follow_redirects=True) | |||
| response = ssrf_proxy.head(url, params=params, headers=headers, cookies=cookies, timeout=API_TOOL_DEFAULT_TIMEOUT, follow_redirects=True) | |||
| elif method == 'options': | |||
| response = ssrf_proxy.options(url, params=params, headers=headers, cookies=cookies, timeout=10, follow_redirects=True) | |||
| response = ssrf_proxy.options(url, params=params, headers=headers, cookies=cookies, timeout=API_TOOL_DEFAULT_TIMEOUT, follow_redirects=True) | |||
| else: | |||
| raise ValueError(f'Invalid http method {method}') | |||