Skip to content

Commit a0a3064

Browse files
committed
🪳 Fixed an issue of ProxyResourceHandler that caused the ContentBody to be lost when sending via POST method.
1 parent 52607e9 commit a0a3064

File tree

6 files changed

+34
-9
lines changed

6 files changed

+34
-9
lines changed
File renamed without changes.

examples/MinimalWinFormiumApp/MinimalWinFormiumApp.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
</ItemGroup>
3737

3838
<ItemGroup>
39-
<!--<PackageReference Include="NetDimension.NanUI.Runtime" Version="109.0.5414.1" />-->
39+
<PackageReference Include="NetDimension.NanUI.Runtime" Version="109.0.5414.1" />
4040
</ItemGroup>
4141

4242
<ItemGroup>

examples/MinimalWinFormiumApp/MyWindow.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public MyWindow() { }
1919

2020
//默认测试,加载普通网页
2121
//Default test, load web page
22-
//Url = "https://www.bing.com";
22+
Url = "https://www.bing.com";
2323

2424
//测试加载本地资源
2525
//Test loading local resources
@@ -240,7 +240,7 @@ protected override FormStyle ConfigureWindowStyle(WindowStyleBuilder builder)
240240

241241
// 移除系统窗体的标题栏
242242
// To remove the title bar of a system window and achieve a borderless form
243-
style.TitleBar = false;
243+
style.BackdropType = SystemFormBackdropType.Surface;
244244

245245
// 指定系统深浅色主题模式,默认将自动检测当前系统的深浅色主题模式。也可以手动指定
246246
// Specify the system's light or dark theme mode. By default, it will automatically detect the current system's theme mode. It can also be manually specified.

src/NetDimension.NanUI.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737

3838
<PropertyGroup Condition="'$(Configuration)'=='Release'">
3939
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
40-
<Version>1.1.$(ChromiumVersion).3</Version>
40+
<Version>1.1.$(ChromiumVersion).4</Version>
4141

4242
</PropertyGroup>
4343

src/Sources/Formium/Forms/OffscreenRender/Direct3DOffscreenRender.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,10 @@ public Direct3DOffscreenRender(Form targetForm)
5858

5959
var dxgiAdapter = _dxgiDevice.GetAdapter();
6060

61-
//_dxgiFactory = DXGI.CreateDXGIFactory2<IDXGIFactory2>(false);
61+
_dxgiFactory = DXGI.CreateDXGIFactory2<IDXGIFactory2>(false);
62+
63+
//_dxgiFactory = dxgiAdapter!.GetParent<IDXGIFactory2>();
6264

63-
_dxgiFactory = dxgiAdapter!.GetParent<IDXGIFactory2>();
6465

6566
_d2d1Factory = D2D1.D2D1CreateFactory<ID2D1Factory1>();
6667
_d2dDevice = _d2d1Factory.CreateDevice(_dxgiDevice);

src/Sources/WebResource/Proxy/ProxyResourceHandler.cs

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,36 @@ protected override ResourceResponse GetResourceResponse(ResourceRequest request)
4545
var headerKey = request.Headers.GetKey(i);
4646
var headerValue = request.Headers.Get(i);
4747

48-
if(headerKey !=null && !message.Headers.TryAddWithoutValidation(headerKey, headerValue))
48+
if (headerKey != null && !message.Headers.TryAddWithoutValidation(headerKey, headerValue))
4949
{
5050
}
5151
}
5252
}
5353

54+
if (request.JsonData != null && request.IsJson)
55+
{
56+
message.Content = new StringContent(request.JsonData, request.ContentEncoding, request.ContentType);
57+
}
58+
else if (request.FormData != null && request.FormData.AllKeys != null && request.FormData.AllKeys.Length > 0)
59+
{
60+
61+
var formData = request.FormData!.AllKeys!.Where(x => x != null).ToDictionary(x => x!, x => request.FormData![x!]);
62+
var formContent = new FormUrlEncodedContent(formData);
63+
message.Content = formContent;
64+
}
65+
else if (request.UploadFiles != null && request.UploadFiles.Length > 0)
66+
{
67+
var multipartContent = new MultipartFormDataContent();
68+
foreach (var file in request.UploadFiles)
69+
{
70+
var fileStream = new FileStream(file, FileMode.Open, FileAccess.Read);
71+
var fileName = Path.GetFileName(file);
72+
var fileContent = new StreamContent(fileStream);
73+
multipartContent.Add(fileContent, "file", fileName);
74+
}
75+
message.Content = multipartContent;
76+
}
77+
5478
var result = httpClient.SendAsync(message).GetAwaiter().GetResult()!;
5579

5680
var response = new ResourceResponse()
@@ -59,7 +83,7 @@ protected override ResourceResponse GetResourceResponse(ResourceRequest request)
5983
HttpStatus = (int)result.StatusCode,
6084
};
6185

62-
foreach(var header in result.Headers.ToList())
86+
foreach (var header in result.Headers.ToList())
6387
{
6488
foreach (var v in header.Value)
6589
{
@@ -69,7 +93,7 @@ protected override ResourceResponse GetResourceResponse(ResourceRequest request)
6993

7094
response.ContentBody = result.Content.ReadAsStreamAsync().GetAwaiter().GetResult();
7195

72-
96+
7397

7498
return response;
7599
}

0 commit comments

Comments
 (0)