Skip to content

Commit b366694

Browse files
authored
Allow empty body for OkHttp POST requests (#796)
1 parent 0b14d47 commit b366694

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

native/kotlin/api/kotlin/src/main/kotlin/rs/wordpress/api/kotlin/WpRequestExecutor.kt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import uniffi.wp_api.MediaUploadRequestExecutionException
1717
import uniffi.wp_api.RequestExecutionErrorReason
1818
import uniffi.wp_api.RequestExecutionException
1919
import uniffi.wp_api.RequestExecutor
20+
import uniffi.wp_api.RequestMethod
2021
import uniffi.wp_api.WpNetworkHeaderMap
2122
import uniffi.wp_api.WpNetworkRequest
2223
import uniffi.wp_api.WpNetworkResponse
@@ -36,9 +37,15 @@ class WpRequestExecutor(
3637
override suspend fun execute(request: WpNetworkRequest): WpNetworkResponse =
3738
withContext(dispatcher) {
3839
val requestBuilder = Request.Builder().url(request.url())
40+
val wpNetworkRequestBody = request.body()?.contents()?.toRequestBody()
3941
requestBuilder.method(
40-
request.method().toString(),
41-
request.body()?.contents()?.toRequestBody()
42+
method = request.method().toString(),
43+
body = if (request.method() == RequestMethod.POST) {
44+
// OkHttp doesn't allow empty bodies for POST requests
45+
wpNetworkRequestBody ?: "".toRequestBody()
46+
} else {
47+
wpNetworkRequestBody
48+
}
4249
)
4350
request.headerMap().toMap().forEach { (key, values) ->
4451
values.forEach { value ->

0 commit comments

Comments
 (0)