feat: Implement JSON POST support in FlareSolverr via WebDriver#1530
Draft
Dev-Time wants to merge 3 commits intoFlareSolverr:masterfrom
Draft
feat: Implement JSON POST support in FlareSolverr via WebDriver#1530Dev-Time wants to merge 3 commits intoFlareSolverr:masterfrom
Dev-Time wants to merge 3 commits intoFlareSolverr:masterfrom
Conversation
This commit introduces functionality to send POST requests with
an 'application/json' content type using a Selenium WebDriver.
The core logic involves:
1. Serializing a Python dictionary to a JSON string.
2. Escaping single quotes in the JSON string to allow safe embedding
into a JavaScript single-quoted string literal.
3. Dynamically generating an HTML5 document with embedded JavaScript.
4. The JavaScript uses the `fetch` API to make the POST request with
the correct 'Content-Type': 'application/json' header and the
JSON payload.
5. The HTML page (and thus the script) is loaded into the WebDriver
using a data URI.
6. Status messages (success/error) are displayed in a `div` on the
generated page and also logged to the browser console.
7. The function waits for the operation to complete and returns
the status message from the page.
A demonstration example using `https://httpbin.org/post` is included
to showcase the functionality, including handling of successful requests,
network errors, and HTTP error responses.
This approach is designed for scenarios where direct Python HTTP requests
might be insufficient due to browser-specific behaviors or JavaScript
dependencies on target sites.
…pe` validation. Remove obsolete `request.postJSON` logic and integrate `selenium_fetch`. Update `requirements.txt` with `selenium_fetch` dependency and enhance DTOs to support `contentType` and `response` fields.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This commit introduces functionality to send POST requests with an 'application/json' content type using a Selenium WebDriver.
The core logic involves:
fetchAPI to make the POST request with the correct 'Content-Type': 'application/json' header and the JSON payload.divon the generated page and also logged to the browser console.A demonstration example using
https://httpbin.org/postis included to showcase the functionality, including handling of successful requests, network errors, and HTTP error responses.This approach is designed for scenarios where direct Python HTTP requests might be insufficient due to browser-specific behaviors or JavaScript dependencies on target sites.