Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import com.mattermost.networkclient.metrics.RequestMetadata
import com.mattermost.networkclient.metrics.getNetworkType
import okhttp3.*
import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.internal.EMPTY_REQUEST
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.tls.HandshakeCertificates
import org.json.JSONArray
import org.json.JSONObject
Expand All @@ -47,6 +47,8 @@ const val CERTIFICATES_PATH = "certs"
internal class NetworkClient(private val context: Context, private val baseUrl: HttpUrl? = null, options: ReadableMap? = null, cookieJar: CookieJar? = null) {
private var okHttpClient: OkHttpClient
private var webSocketUri: URI? = null
private val jsonUtf8MediaType = "application/json; charset=utf-8".toMediaType()
private val textUtf8MediaType = "text/plain; charset=utf-8".toMediaType()

var clientHeaders: HashMap<String, Any?> = hashMapOf()
var clientRetryInterceptor: Interceptor? = null
Expand Down Expand Up @@ -408,31 +410,31 @@ internal class NetworkClient(private val context: Context, private val baseUrl:
when (options.getType("body")) {
ReadableType.Array -> {
val jsonBody = JSONArray(options.getArray("body")!!.toArrayList())
requestBody = jsonBody.toString().toRequestBody()
requestBody = jsonBody.toString().toRequestBody(jsonUtf8MediaType)
}
ReadableType.Map -> {
val jsonBody = (options.getMap("body")!!.toHashMap() as Map<*, *>?)?.let {
JSONObject(
it
)
}
requestBody = jsonBody?.toString()?.toRequestBody()
requestBody = jsonBody?.toString()?.toRequestBody(jsonUtf8MediaType)
}
ReadableType.String -> {
requestBody = options.getString("body")!!.toRequestBody()
requestBody = options.getString("body")!!.toRequestBody(textUtf8MediaType)
}
ReadableType.Null -> {
requestBody = EMPTY_REQUEST
requestBody = "".toRequestBody(textUtf8MediaType)
}
ReadableType.Boolean -> {
requestBody = options.getBoolean("body").toString().toRequestBody()
requestBody = options.getBoolean("body").toString().toRequestBody(textUtf8MediaType)
}
ReadableType.Number -> {
requestBody = options.getDouble("body").toString().toRequestBody()
requestBody = options.getDouble("body").toString().toRequestBody(textUtf8MediaType)
}
}
} else if (method.uppercase(Locale.ENGLISH) == "POST") {
requestBody = EMPTY_REQUEST
requestBody = "".toRequestBody(textUtf8MediaType)
}
}

Expand Down