diff --git a/src/FlareSolverrSharp/Solvers/FlareSolverr.cs b/src/FlareSolverrSharp/Solvers/FlareSolverr.cs index 9109af6..5a66219 100644 --- a/src/FlareSolverrSharp/Solvers/FlareSolverr.cs +++ b/src/FlareSolverrSharp/Solvers/FlareSolverr.cs @@ -29,9 +29,9 @@ public FlareSolverr(string flareSolverrApiUrl) _flareSolverrUri = new Uri(apiUrl + "v1"); } - public async Task Solve(HttpRequestMessage request, string sessionId = "") + public async Task Solve(HttpRequestMessage request, string sessionId = "", Types.Cookie[] cookies = null) { - return await SendFlareSolverrRequest(GenerateFlareSolverrRequest(request, sessionId)); + return await SendFlareSolverrRequest(GenerateFlareSolverrRequest(request, sessionId, cookies)); } public async Task CreateSession() @@ -178,7 +178,7 @@ private HttpContent GetSolverRequestContent(FlareSolverrRequest request) return content; } - private HttpContent GenerateFlareSolverrRequest(HttpRequestMessage request, string sessionId = "") + private HttpContent GenerateFlareSolverrRequest(HttpRequestMessage request, string sessionId = "", Types.Cookie[] cookies = null) { FlareSolverrRequest req; if (string.IsNullOrWhiteSpace(sessionId)) @@ -196,7 +196,8 @@ private HttpContent GenerateFlareSolverrRequest(HttpRequestMessage request, stri Url = url, MaxTimeout = MaxTimeout, Proxy = proxy, - Session = sessionId + Session = sessionId, + Cookies = cookies }; } else if (request.Method == HttpMethod.Post) @@ -212,7 +213,8 @@ private HttpContent GenerateFlareSolverrRequest(HttpRequestMessage request, stri PostData = request.Content.ReadAsStringAsync().Result, MaxTimeout = MaxTimeout, Proxy = proxy, - Session = sessionId + Session = sessionId, + Cookies = cookies }; } else if (contentMediaType.Contains("multipart/form-data") @@ -233,6 +235,5 @@ private HttpContent GenerateFlareSolverrRequest(HttpRequestMessage request, stri return GetSolverRequestContent(req); } - } } diff --git a/src/FlareSolverrSharp/Types/FlareSolverrRequest.cs b/src/FlareSolverrSharp/Types/FlareSolverrRequest.cs index 49bd18b..394cc14 100644 --- a/src/FlareSolverrSharp/Types/FlareSolverrRequest.cs +++ b/src/FlareSolverrSharp/Types/FlareSolverrRequest.cs @@ -15,5 +15,8 @@ public class FlareSolverrRequest [JsonProperty("proxy")] public FlareSolverrRequestProxy Proxy; + + [JsonProperty("cookies")] + public Cookie[] Cookies; } } diff --git a/src/FlareSolverrSharp/Types/FlareSolverrResponse.cs b/src/FlareSolverrSharp/Types/FlareSolverrResponse.cs index e852ef7..9d9cd3f 100644 --- a/src/FlareSolverrSharp/Types/FlareSolverrResponse.cs +++ b/src/FlareSolverrSharp/Types/FlareSolverrResponse.cs @@ -29,20 +29,33 @@ public class Solution public class Cookie { + [JsonProperty("name")] public string Name; + + [JsonProperty("value")] public string Value; + + [JsonProperty("domain")] public string Domain; + + [JsonProperty("path")] public string Path; - public double Expires; - public int Size; + + [JsonProperty("expiry", DefaultValueHandling = DefaultValueHandling.Ignore)] + public int Expiry; + + [JsonProperty("httpOnly", DefaultValueHandling = DefaultValueHandling.Ignore)] public bool HttpOnly; + + [JsonProperty("secure", DefaultValueHandling = DefaultValueHandling.Ignore)] public bool Secure; - public bool Session; + + [JsonProperty("sameSite")] public string SameSite; public string ToHeaderValue() => $"{Name}={Value}"; - public System.Net.Cookie ToCookieObj() => new System.Net.Cookie(Name, Value); + public System.Net.Cookie ToCookieObj() => new System.Net.Cookie(Name, Value); } public class Headers @@ -52,4 +65,4 @@ public class Headers [JsonProperty(PropertyName = "content-type")] public string ContentType; } -} \ No newline at end of file +}