%% MESCommonBase 响应输出与 SqlWebCall 主流程图 flowchart TD A([MESCommonBase.ashx
ProcessRequest]) B[解析请求并取得 type
JSON body / jsonobj / Request param] C{switch(type)} A --> B --> C C -->|2001/2002/2003/2004/16| D[文件下载类分支
生成或读取 bytes/fileName/extension] C -->|15| E[文件上传分支
读取 Request.Files[0]
调用 ExePROCEDURE_Type15] C -->|4000| F[IP 查询分支
读取 ServerVariables / UserHostAddress] C -->|default| G[普通业务分支
DataLink.SqlWebCall(type,jsonData,dataobj)] D --> D1{bytes 是否有效?} D1 -->|是| R1[二进制下载响应
Content-Type: application/octet-stream
Content-Disposition: attachment
BinaryWrite + Flush + End/Close] D1 -->|否
主要见 Type=16| R0[直接 return
可能为空响应] E --> R2[JSON 文本响应
Response.Write(responseText)
常见 result=1 / result=0] F --> R3[文本 IP 响应
Response.Write(userIP)
Content-Type 仍可能是 application/json] G --> G1[SqlWebCall 返回字符串
数组 JSON / code-message-data / 空字符串] G1 --> R2 A -.外层 catch(Exception err).-> X[异常兜底
不记录异常
Response.Write(responseText)
初始 responseText = NULL] X --> END([请求结束]) R1 --> END R0 --> END R2 --> END R3 --> END subgraph WARN[主流程注意点] W1[Response.End 位于 try 内
可能触发 ThreadAbortException] W2[响应格式不统一
二进制 / JSON / 文本 / NULL / 空响应] W3[default 分支执行能力强
依赖 SqlWebCall 内部 Type 二次分发] end END --> WARN