MCPcopy Create free account
hub / github.com/CJackHwang/AIstudioProxyAPI / test_proxy_connectivity

Function test_proxy_connectivity

api_utils/routers/proxy.py:94–163  ·  view source on GitHub ↗

Test proxy connectivity.

(request: ProxyTestRequest)

Source from the content-addressed store, hash-verified

92
93@router.post("/test")
94async def test_proxy_connectivity(request: ProxyTestRequest) -> JSONResponse:
95 """Test proxy connectivity."""
96 import httpx
97
98 proxy_addr = request.address.strip()
99 test_url = request.test_url
100
101 if not proxy_addr:
102 return JSONResponse(
103 content=ProxyTestResult(
104 success=False, message="Proxy address cannot be empty"
105 ).model_dump(),
106 status_code=400,
107 )
108
109 try:
110 start_time = time.monotonic()
111 async with httpx.AsyncClient(
112 proxy=proxy_addr,
113 timeout=15.0,
114 follow_redirects=True,
115 ) as client:
116 response = await client.get(test_url)
117 latency = (time.monotonic() - start_time) * 1000
118
119 if 200 <= response.status_code < 300:
120 return JSONResponse(
121 content=ProxyTestResult(
122 success=True,
123 message=f"Connection successful (HTTP {response.status_code})",
124 latency_ms=round(latency, 2),
125 ).model_dump()
126 )
127 else:
128 return JSONResponse(
129 content=ProxyTestResult(
130 success=False,
131 message=f"HTTP Error: {response.status_code}",
132 latency_ms=round(latency, 2),
133 ).model_dump()
134 )
135
136 except httpx.ProxyError as e:
137 return JSONResponse(
138 content=ProxyTestResult(
139 success=False, message=f"Proxy error: {e}"
140 ).model_dump()
141 )
142 except httpx.ConnectTimeout:
143 return JSONResponse(
144 content=ProxyTestResult(
145 success=False, message="Connection timeout"
146 ).model_dump()
147 )
148 except httpx.ReadTimeout:
149 return JSONResponse(
150 content=ProxyTestResult(success=False, message="Read timeout").model_dump()
151 )

Callers

nothing calls this directly

Calls 2

ProxyTestResultClass · 0.70
getMethod · 0.45

Tested by

no test coverage detected