update
This commit is contained in:
@@ -132,7 +132,7 @@ class Crawler extends BaseController
|
||||
return trim($cookies);
|
||||
}
|
||||
|
||||
// 只保留用户填写的Cookie,若同名键多值则取最后一个(单JSESSIONID场景)
|
||||
// 只保留用户填写的Cookie,支持同名键多值(如双JSESSIONID)
|
||||
$cookieData = $cookies['请求 Cookie'] ?? $cookies;
|
||||
$normalized = [];
|
||||
|
||||
@@ -141,25 +141,28 @@ class Crawler extends BaseController
|
||||
if ($k === '') {
|
||||
continue;
|
||||
}
|
||||
$v = is_array($value) ? end($value) : $value;
|
||||
$v = trim((string)$v);
|
||||
if ($v === '') {
|
||||
continue;
|
||||
$vals = is_array($value) ? $value : [$value];
|
||||
foreach ($vals as $v) {
|
||||
$v = trim((string)$v);
|
||||
if ($v === '') {
|
||||
continue;
|
||||
}
|
||||
$normalized[$k][] = $v;
|
||||
}
|
||||
// 后面的值覆盖前面的值,确保单值
|
||||
$normalized[$k] = $v;
|
||||
}
|
||||
|
||||
// 将 JSESSIONID 放在最前(如果存在),其余按键名顺序
|
||||
// 将 JSESSIONID 放在最前(如果存在),其余按键名顺序,多值全部保留
|
||||
$parts = [];
|
||||
if (isset($normalized['JSESSIONID'])) {
|
||||
// 按用户需求:输出两个相同的 JSESSIONID
|
||||
$parts[] = 'JSESSIONID=' . $normalized['JSESSIONID'];
|
||||
$parts[] = 'JSESSIONID=' . $normalized['JSESSIONID'];
|
||||
foreach ($normalized['JSESSIONID'] as $v) {
|
||||
$parts[] = 'JSESSIONID=' . $v;
|
||||
}
|
||||
unset($normalized['JSESSIONID']);
|
||||
}
|
||||
foreach ($normalized as $k => $v) {
|
||||
$parts[] = $k . '=' . $v;
|
||||
foreach ($normalized as $k => $vArr) {
|
||||
foreach ($vArr as $v) {
|
||||
$parts[] = $k . '=' . $v;
|
||||
}
|
||||
}
|
||||
|
||||
return implode('; ', $parts);
|
||||
|
||||
@@ -199,7 +199,7 @@ class CrawlerService
|
||||
return trim($cookies);
|
||||
}
|
||||
|
||||
// 只保留用户填写的Cookie,若同名键多值则取最后一个(单JSESSIONID场景)
|
||||
// 只保留用户填写的Cookie,支持同名键多值(如双JSESSIONID)
|
||||
$cookieData = $cookies['请求 Cookie'] ?? $cookies;
|
||||
$normalized = [];
|
||||
|
||||
@@ -208,24 +208,28 @@ class CrawlerService
|
||||
if ($k === '') {
|
||||
continue;
|
||||
}
|
||||
$v = is_array($value) ? end($value) : $value;
|
||||
$v = trim((string)$v);
|
||||
if ($v === '') {
|
||||
continue;
|
||||
$vals = is_array($value) ? $value : [$value];
|
||||
foreach ($vals as $v) {
|
||||
$v = trim((string)$v);
|
||||
if ($v === '') {
|
||||
continue;
|
||||
}
|
||||
$normalized[$k][] = $v;
|
||||
}
|
||||
$normalized[$k] = $v;
|
||||
}
|
||||
|
||||
// 将 JSESSIONID 放在最前(如果存在),其余按键名顺序
|
||||
// 将 JSESSIONID 放在最前(如果存在),其余按键名顺序,多值全部保留
|
||||
$parts = [];
|
||||
if (isset($normalized['JSESSIONID'])) {
|
||||
// 按需求:输出两个相同的 JSESSIONID
|
||||
$parts[] = 'JSESSIONID=' . $normalized['JSESSIONID'];
|
||||
$parts[] = 'JSESSIONID=' . $normalized['JSESSIONID'];
|
||||
foreach ($normalized['JSESSIONID'] as $v) {
|
||||
$parts[] = 'JSESSIONID=' . $v;
|
||||
}
|
||||
unset($normalized['JSESSIONID']);
|
||||
}
|
||||
foreach ($normalized as $k => $v) {
|
||||
$parts[] = $k . '=' . $v;
|
||||
foreach ($normalized as $k => $vArr) {
|
||||
foreach ($vArr as $v) {
|
||||
$parts[] = $k . '=' . $v;
|
||||
}
|
||||
}
|
||||
|
||||
return implode('; ', $parts);
|
||||
|
||||
@@ -246,7 +246,13 @@
|
||||
<div class="form-group">
|
||||
<label for="cookie-jsessionid">JSESSIONID:</label>
|
||||
<input type="text" id="cookie-jsessionid" placeholder="示例:9E592C9CC752F8552F0D746D91958475">
|
||||
<small>从浏览器开发者工具中复制JSESSIONID的值</small>
|
||||
<small>从浏览器开发者工具中复制JSESSIONID的值(必要)</small>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="cookie-jsessionid2">JSESSIONID(可选,第二个):</label>
|
||||
<input type="text" id="cookie-jsessionid2" placeholder="如抓包中存在第二个JSESSIONID可填写">
|
||||
<small>若抓包中请求头里有第二个JSESSIONID,请一起填写</small>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@@ -445,6 +451,7 @@
|
||||
// 组装Cookie数据
|
||||
function buildCookiesPayload(messageContainerId) {
|
||||
const jsessionid = document.getElementById('cookie-jsessionid').value.trim();
|
||||
const jsessionid2 = document.getElementById('cookie-jsessionid2').value.trim();
|
||||
const serverid = document.getElementById('cookie-serverid').value.trim();
|
||||
|
||||
if (!jsessionid || !serverid) {
|
||||
@@ -452,12 +459,11 @@
|
||||
return null;
|
||||
}
|
||||
|
||||
return {
|
||||
"请求 Cookie": {
|
||||
"JSESSIONID": jsessionid,
|
||||
"SERVERID": serverid
|
||||
}
|
||||
};
|
||||
const cookies = { "请求 Cookie": {} };
|
||||
// 支持双 JSESSIONID
|
||||
cookies["请求 Cookie"]["JSESSIONID"] = jsessionid2 ? [jsessionid, jsessionid2] : jsessionid;
|
||||
cookies["请求 Cookie"]["SERVERID"] = serverid;
|
||||
return cookies;
|
||||
}
|
||||
|
||||
// 全选/取消全选
|
||||
|
||||
Reference in New Issue
Block a user