mirror of
https://github.com/wanghongenpin/proxypin.git
synced 2026-04-03 08:05:06 +08:00
修复请求重写
This commit is contained in:
@@ -90,6 +90,8 @@ class ProxyHelper {
|
||||
..headers.contentLength = message.codeUnits.length
|
||||
..body = message.codeUnits;
|
||||
|
||||
channel.putAttribute(AttributeKeys.host, hostAndPort);
|
||||
|
||||
listener?.onRequest(channel, request);
|
||||
listener?.onResponse(channel, request.response!);
|
||||
}
|
||||
|
||||
@@ -90,14 +90,16 @@ class MultiWindow {
|
||||
|
||||
switch (operation) {
|
||||
case Operation.add:
|
||||
List<dynamic> list = arguments['items'] as List<dynamic>;
|
||||
List<RewriteItem> items =list.map((e) => RewriteItem.fromJson(e)).toList();
|
||||
await requestRewrites.addRule(RequestRewriteRule.formJson(arguments['rule']), items);
|
||||
break;
|
||||
case Operation.update:
|
||||
List<dynamic>? list = arguments['items'] as List<dynamic>?;
|
||||
List<RewriteItem>? items = list?.map((e) => RewriteItem.fromJson(e)).toList();
|
||||
await requestRewrites.updateRule(arguments['index'], RequestRewriteRule.formJson(arguments['rule']), items);
|
||||
var rule = RequestRewriteRule.formJson(arguments['rule']);
|
||||
List<dynamic> list = arguments['items'] as List<dynamic>;
|
||||
List<RewriteItem> items = list.map((e) => RewriteItem.fromJson(e)).toList();
|
||||
|
||||
if (operation == Operation.add) {
|
||||
await requestRewrites.addRule(rule, items);
|
||||
} else {
|
||||
await requestRewrites.updateRule(arguments['index'], rule, items);
|
||||
}
|
||||
break;
|
||||
case Operation.delete:
|
||||
await requestRewrites.removeIndex([arguments['index']]);
|
||||
@@ -113,7 +115,7 @@ class MultiWindow {
|
||||
_refreshRewrite = true;
|
||||
Future.delayed(const Duration(milliseconds: 1000), () async {
|
||||
_refreshRewrite = false;
|
||||
(await RequestRewrites.instance).flushRequestRewriteConfig();
|
||||
requestRewrites.flushRequestRewriteConfig();
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -136,7 +138,7 @@ void registerMethodHandler() {
|
||||
return 'done';
|
||||
}
|
||||
|
||||
if (call.method == 'refreshRequestRewrite' && fromWindowId != 0) {
|
||||
if (call.method == 'refreshRequestRewrite') {
|
||||
MultiWindow._handleRefreshRewrite(Operation.of(call.arguments['operation']), call.arguments);
|
||||
return 'done';
|
||||
}
|
||||
|
||||
@@ -188,10 +188,9 @@ class HttpBodyState extends State<HttpBodyWidget> {
|
||||
showDialog(
|
||||
context: context,
|
||||
barrierDismissible: false,
|
||||
builder: (BuildContext context) => RuleAddDialog(rule: rule, items: rewriteItems)).then((value) {
|
||||
builder: (BuildContext context) => RuleAddDialog(rule: rule, items: rewriteItems, newWindow: false)).then((value) {
|
||||
if (value is RequestRewriteRule) {
|
||||
DesktopMultiWindow.getAllSubWindowIds().then((windowIds) async {
|
||||
await requestRewrites.flushRequestRewriteConfig();
|
||||
var items = await requestRewrites.getRewriteItems(value);
|
||||
await requestRewrites.updateRule(requestRewrites.rules.indexOf(value), value, items);
|
||||
for (var windowId in windowIds) {
|
||||
|
||||
@@ -115,7 +115,11 @@ class DomainWidgetState extends State<DomainWidget> with AutomaticKeepAliveClien
|
||||
///添加请求
|
||||
add(Channel channel, HttpRequest request) {
|
||||
container.add(request);
|
||||
HostAndPort hostAndPort = channel.getAttribute(AttributeKeys.host);
|
||||
HostAndPort? hostAndPort = request.hostAndPort;
|
||||
if (hostAndPort == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
//按照域名分类
|
||||
HeaderBody? headerBody = containerMap[hostAndPort];
|
||||
if (headerBody != null) {
|
||||
|
||||
@@ -279,8 +279,9 @@ class _RequestRuleListState extends State<RequestRuleList> {
|
||||
class RuleAddDialog extends StatefulWidget {
|
||||
final RequestRewriteRule? rule;
|
||||
final List<RewriteItem>? items;
|
||||
final bool newWindow;
|
||||
|
||||
const RuleAddDialog({super.key, this.rule, this.items});
|
||||
const RuleAddDialog({super.key, this.rule, this.items, this.newWindow = true});
|
||||
|
||||
@override
|
||||
State<StatefulWidget> createState() {
|
||||
@@ -397,7 +398,10 @@ class _RuleAddDialogState extends State<RuleAddDialog> {
|
||||
if (index >= 0) {
|
||||
MultiWindow.invokeRefreshRewrite(Operation.update, index: index, rule: rule, items: items);
|
||||
} else {
|
||||
requestRewrites.rules.add(rule);
|
||||
if (widget.newWindow) {
|
||||
requestRewrites.rules.add(rule);
|
||||
}
|
||||
|
||||
MultiWindow.invokeRefreshRewrite(Operation.add, rule: rule, items: items);
|
||||
}
|
||||
if (mounted) {
|
||||
|
||||
Reference in New Issue
Block a user