Skip to content

Commit 06774b6

Browse files
authored
Fix redirect issues (#72)
1 parent d9fa359 commit 06774b6

File tree

4 files changed

+26
-8
lines changed

4 files changed

+26
-8
lines changed

lib/PuppeteerSharp.Tests/Puppeteer/PuppeteerLaunchTests.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,19 @@ public async Task ShouldSupportIgnoreHTTPSErrorsOption()
2424

2525
await browser.CloseAsync();
2626
}
27+
28+
[Fact]
29+
public async Task ShouldWorkInRealLife()
30+
{
31+
var options = TestConstants.DefaultBrowserOptions();
32+
33+
var browser = await PuppeteerSharp.Puppeteer.LaunchAsync(options, TestConstants.ChromiumRevision);
34+
var page = await browser.NewPageAsync();
35+
36+
var response = await page.GoToAsync("https://www.google.com");
37+
Assert.Equal(response.Status.ToString(), "OK");
38+
39+
await browser.CloseAsync();
40+
}
2741
}
2842
}

lib/PuppeteerSharp/NetworkManager.cs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,12 @@ private void HandleRequestRedirect(Request request, HttpStatusCode redirectStatu
289289
var response = new Response(_client, request, redirectStatus, redirectHeaders);
290290
request.Response = response;
291291
_requestIdToRequest.Remove(request.RequestId);
292-
_interceptionIdToRequest.Remove(request.InterceptionId);
293-
_attemptedAuthentications.Remove(request.InterceptionId);
292+
293+
if (request.InterceptionId != null)
294+
{
295+
_interceptionIdToRequest.Remove(request.InterceptionId);
296+
_attemptedAuthentications.Remove(request.InterceptionId);
297+
}
294298

295299
ResponseCreated(this, new ResponseCreatedArgs()
296300
{
@@ -335,14 +339,14 @@ private void OnRequestWillBeSent(MessageEventArgs e)
335339
}
336340
}
337341

338-
if (e.MessageData.redirectResponse != null && _requestIdToRequest.ContainsKey(e.MessageData.requestId))
342+
if (e.MessageData.redirectResponse != null && _requestIdToRequest.ContainsKey(e.MessageData.requestId.ToString()))
339343
{
340-
var request = _requestIdToRequest[e.MessageData.requestId];
344+
var request = _requestIdToRequest[e.MessageData.requestId.ToString()];
341345
// If we connect late to the target, we could have missed the requestWillBeSent event.
342346
HandleRequestRedirect(
343347
request,
344-
e.MessageData.redirectResponse.status,
345-
e.MessageData.redirectResponse.headers);
348+
(HttpStatusCode)e.MessageData.redirectResponse.status,
349+
e.MessageData.redirectResponse.headers.ToObject<Dictionary<string, object>>());
346350
}
347351

348352
HandleRequestStart(

lib/PuppeteerSharp/Page.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,7 @@ private void OnTargetCrashed()
639639

640640
private void EmitMetrics(MessageEventArgs e)
641641
{
642-
throw new NotImplementedException();
642+
643643
}
644644

645645
private async Task OnCertificateError(MessageEventArgs e)

lib/PuppeteerSharp/PuppeteerSharp.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<PropertyGroup>
44
<TargetFramework>netstandard2.0</TargetFramework>
55
<PackOnBuild>true</PackOnBuild>
6-
<PackageVersion>0.1.0</PackageVersion>
6+
<PackageVersion>0.1.1</PackageVersion>
77
<Authors>Darío Kondratiuk</Authors>
88
<Owners>Darío Kondratiuk</Owners>
99
<PackageProjectUrl>https://github.com/kblok/puppeteer-sharp</PackageProjectUrl>

0 commit comments

Comments
 (0)