List icon 目录

从 7.32 到 7.33

上传数据

在JxBrowser 7.33中,我们移除了 LoadUrlParams 中作为原始文本配置上传数据的方法。

7.32 及更早版本:

在使用旧 API 时,数据的类型是未定义的,这取决于 Web 服务器如何解释这些数据。

Java
Kotlin
import com.teamdev.jxbrowser.navigation.LoadUrlParams;
...
LoadUrlParams params =
    LoadUrlParams.newBuilder("https://example.com")
        .postData("foo=bar&buzz=feed")
        .build();
browser.navigation().loadUrl(params);
import com.teamdev.jxbrowser.navigation.LoadUrlParams
...
val params = 
    LoadUrlParams.newBuilder("https://example.com")
        .postData("foo=bar&buzz=feed")
        .build()
browser.navigation().loadUrl(params)

7.33:

使用新 API,每种上传数据都必须具有一个类型:

Java
Kotlin
import com.teamdev.jxbrowser.navigation.LoadUrlParams;
import com.teamdev.jxbrowser.net.FormData;
import com.teamdev.jxbrowser.net.FormData.Pair;
...
FormData formData =
    FormData.newBuilder()
        .addPair(Pair.of("foo", "bar"))
        .addPair(Pair.of("buzz", "feed"))
        .build();
LoadUrlParams params =
    LoadUrlParams.newBuilder("https://example.com")
        .uploadData(formData)
        .build();
browser.navigation().loadUrl(params);
import com.teamdev.jxbrowser.navigation.LoadUrlParams
import com.teamdev.jxbrowser.net.FormData
import com.teamdev.jxbrowser.net.FormData.Pair
...
val formData =
    FormData.newBuilder()
        .addPair(Pair.of("foo", "bar"))
        .addPair(Pair.of("buzz", "feed"))
        .build()
val params =
    LoadUrlParams.newBuilder("https://example.com")
        .uploadData(formData)
        .build()
browser.navigation().loadUrl(params)

或者,您可以通过使用带有自定义内容类型的 ByteData 来使用任意格式的上传数据。

Java
Kotlin
import com.teamdev.jxbrowser.navigation.LoadUrlParams;
import com.teamdev.jxbrowser.net.ByteData;
import com.teamdev.jxbrowser.net.ContentType;
...
ContentType type = ContentType.newBuilder("application/x-www-form-urlencoded").build();
ByteData byteData = ByteData.of("foo=bar&buzz=feed".getBytes(UTF_8), type);
LoadUrlParams params =
        LoadUrlParams.newBuilder("https://example.com")
                .uploadData(byteData)
                .build();
browser.navigation().loadUrl(params);
import com.teamdev.jxbrowser.navigation.LoadUrlParams
import com.teamdev.jxbrowser.net.ByteData
import com.teamdev.jxbrowser.net.ContentType
...
val type = ContentType.newBuilder("application/x-www-form-urlencoded").build()
val byteData = ByteData.of("foo=bar&buzz=feed".toByteArray(), type)
val params =
    LoadUrlParams.newBuilder("https://example.com")
        .uploadData(byteData)
        .build()
browser.navigation().loadUrl(params)