1
0
mirror of https://github.com/owncloud/android-library.git synced 2026-08-15 10:22:53 +00:00

Move RequestBody to constructor to avoid npe

This commit is contained in:
agarcia
2020-07-08 18:15:28 +02:00
parent f89cfd91a9
commit 31d3bfbde9
6 changed files with 20 additions and 25 deletions
@@ -7,7 +7,6 @@ import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.RequestBody
import okhttp3.Response
import java.io.InputStream
import java.net.MalformedURLException
@@ -18,7 +17,6 @@ abstract class HttpBaseMethod constructor(url: URL) {
var okHttpClient: OkHttpClient
var httpUrl: HttpUrl = url.toHttpUrlOrNull() ?: throw MalformedURLException()
var request: Request
var requestBody: RequestBody? = null
abstract var response: Response
var call: Call? = null
@@ -45,17 +43,13 @@ abstract class HttpBaseMethod constructor(url: URL) {
*** Requests ***
****************/
// Headers
val requestHeaders: Headers
get() = request.headers
fun getRequestHeader(name: String): String? {
return request.header(name)
}
fun getRequestHeadersAsHashMap(): HashMap<String, String?> {
val headers: HashMap<String, String?> = HashMap()
val superHeaders: Set<String> = requestHeaders.names()
val superHeaders: Set<String> = request.headers.names()
superHeaders.forEach {
headers[it] = getRequestHeader(it)
}
@@ -32,10 +32,12 @@ import java.net.URL
*
* @author David González Verdugo
*/
class PostMethod(url: URL, private val postRequestBody: RequestBody) : HttpMethod(url) {
class PostMethod(
url: URL,
private val postRequestBody: RequestBody
) : HttpMethod(url) {
@Throws(IOException::class)
override fun onExecute(): Int {
requestBody = postRequestBody
request = request.newBuilder()
.post(postRequestBody)
.build()
@@ -38,7 +38,6 @@ class PutMethod(
) : HttpMethod(url) {
@Throws(IOException::class)
override fun onExecute(): Int {
requestBody = putRequestBody
request = request.newBuilder()
.put(putRequestBody)
.build()
@@ -25,6 +25,7 @@ package com.owncloud.android.lib.common.http.methods.webdav
import at.bitfire.dav4jvm.exception.HttpException
import com.owncloud.android.lib.common.http.HttpConstants
import okhttp3.RequestBody
import java.io.IOException
import java.net.URL
@@ -34,12 +35,13 @@ import java.net.URL
* @author David González Verdugo
*/
class PutMethod(
url: URL
url: URL,
private val putRequestBody: RequestBody
) : DavMethod(url) {
@Throws(IOException::class, HttpException::class)
public override fun onExecute(): Int {
davResource.put(
requestBody!!,
putRequestBody,
super.getRequestHeader(HttpConstants.IF_MATCH_HEADER),
getRequestHeadersAsHashMap()
) { callBackResponse ->