JXBrowser を使用して PUT メソッドの本体コンテンツをキャプチャする最良の方法は何ですか?
BeforeURLRequestParams クラスを使用すると、ユーザーは「getPostData()」メソッドを呼び出すことができます。「getPutData()」メソッドはありますか?
JXBrowser を使用して PUT メソッドの本体コンテンツをキャプチャする最良の方法は何ですか?
BeforeURLRequestParams クラスを使用すると、ユーザーは「getPostData()」メソッドを呼び出すことができます。「getPutData()」メソッドはありますか?
JxBrowser 6.1 は、POST/PUT アップロード データをキャプチャできる機能を提供します。次のサンプルは、その方法を示しています。
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"));
}
}