Feat: location rule for http (#10901)

### What problem does this PR solve?

Location rule for http.

### Type of change

- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
Lynn
2025-11-03 11:01:24 +08:00
committed by GitHub
parent 7ec587fa9e
commit 061d8f78e5
2 changed files with 24 additions and 6 deletions

View File

@ -10,6 +10,11 @@ server {
gzip_vary on; gzip_vary on;
gzip_disable "MSIE [1-6]\."; gzip_disable "MSIE [1-6]\.";
location ~ ^/api/v1/admin {
proxy_pass http://localhost:9381;
include proxy.conf;
}
location ~ ^/(v1|api) { location ~ ^/(v1|api) {
proxy_pass http://localhost:9380; proxy_pass http://localhost:9380;
include proxy.conf; include proxy.conf;

View File

@ -464,14 +464,27 @@ class Parser(ProcessBase):
if "body" in target_fields: if "body" in target_fields:
body_text, body_html = [], [] body_text, body_html = [], []
def _add_content(m, content_type): def _add_content(m, content_type):
def _decode_payload(payload, charset, target_list):
try:
target_list.append(payload.decode(charset))
except (UnicodeDecodeError, LookupError):
for enc in ["utf-8", "gb2312", "gbk", "gb18030", "latin1"]:
try:
target_list.append(payload.decode(enc))
break
except UnicodeDecodeError:
continue
else:
target_list.append(payload.decode("utf-8", errors="ignore"))
if content_type == "text/plain": if content_type == "text/plain":
body_text.append( payload = msg.get_payload(decode=True)
m.get_payload(decode=True).decode(m.get_content_charset()) charset = msg.get_content_charset() or "utf-8"
) _decode_payload(payload, charset, body_text)
elif content_type == "text/html": elif content_type == "text/html":
body_html.append( payload = msg.get_payload(decode=True)
m.get_payload(decode=True).decode(m.get_content_charset()) charset = msg.get_content_charset() or "utf-8"
) _decode_payload(payload, charset, body_html)
elif "multipart" in content_type: elif "multipart" in content_type:
if m.is_multipart(): if m.is_multipart():
for part in m.iter_parts(): for part in m.iter_parts():