💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
> 其实是NetworkDelegate的具体应用,实现 onBeforeURLRequest JxBrowser API提供的功能允许在将POST / PUT / PATCH上传数据发送到Web服务器之前访问和修改它们。 POST / PUT / PATCH 上传数据可以是以下类型之一: * 纯文本 * BYTES * FORM_URL_ENCODED * MULTIPART_FORM_DATA 根据上载数据类型,您可以使用不同的策略来访问和修改上载数据。以下示例演示了如何执行此操作: ``` import com.teamdev.jxbrowser.chromium.*; import com.teamdev.jxbrowser.chromium.swing.DefaultNetworkDelegate; /** * This sample demonstrates how to read and modify POST data of * HTTP request using NetworkDelegate. */ public class POSTDataSample { public static void main(String[] args) { Browser browser = new Browser(); BrowserContext browserContext = browser.getContext(); NetworkService networkService = browserContext.getNetworkService(); networkService.setNetworkDelegate(new DefaultNetworkDelegate() { @Override public void onBeforeURLRequest(BeforeURLRequestParams params) { if ("POST".equals(params.getMethod())) { UploadData uploadData = params.getUploadData(); UploadDataType dataType = uploadData.getType(); if (dataType == UploadDataType.FORM_URL_ENCODED) { FormData data = (FormData) uploadData; data.setPair("key1", "value1", "value2"); data.setPair("key2", "value2"); } else if (dataType == UploadDataType.MULTIPART_FORM_DATA) { MultipartFormData data = (MultipartFormData) uploadData; data.setPair("key1", "value1", "value2"); data.setPair("key2", "value2"); data.setFilePair("file3", "C:\\Test.zip"); } else if (dataType == UploadDataType.PLAIN_TEXT) { TextData data = (TextData) uploadData; data.setText("My data"); } else if (dataType == UploadDataType.BYTES) { BytesData data = (BytesData) uploadData; data.setData("My data".getBytes()); } // Apply modified upload data that will be sent to a web server. params.setUploadData(uploadData); } } }); browser.loadURL(new LoadURLParams("http://localhost/", "key=value")); } } ```