Best Fuel code snippet using com.github.kittinunf.fuel.core.requests.DownloadRequest.toString
Request.kt
Source:Request.kt
...78 * @see com.github.kittinunf.fuel.core.extensions.cUrlString79 *80 * @return [String] the string representation81 */82 override fun toString(): String83 /**84 * Get the current values of the header, after normalisation of the header85 * @param header [String] the header name86 * @return the current values (or empty if none)87 */88 operator fun get(header: String): HeaderValues89 /**90 * Set the values of the header, overriding what's there, after normalisation of the header91 *92 * @param header [String] the header name93 * @param values [Collection<*>] the values to be transformed through #toString94 * @return self95 */96 operator fun set(header: String, values: Collection<*>): Request97 /**98 * Set the value of the header, overriding what's there, after normalisation of the header99 *100 * @param header [String] the header name101 * @param value [Any] the value to be transformed through #toString102 */103 operator fun set(header: String, value: Any): Request104 /**105 * Get the current values106 *107 * @see get(header: String)108 * @return [HeaderValues] the current values109 */110 fun header(header: String): HeaderValues111 /**112 * Replace the headers with the map provided113 *114 * @note In earlier versions the mapOf variant of this function worked differently than the vararg pairs variant,115 * which has been changed to make any call to header(...) always overwrite the values and any call to116 * appendHeader(...) will try to append the value.117 *118 * @see set(header: String, values: Collection<*>)119 * @see set(header: String, value: Any)120 *121 * @param map [Map<String, Any>] map of headers to replace. Value can be a list or single value122 * @return [Request] the modified request123 */124 fun header(map: Map<String, Any>): Request125 /**126 * Replace the headers with the pairs provided127 *128 * @note In earlier versions the mapOf variant of this function worked differently than the vararg pairs variant,129 * which has been changed to make any call to header(...) always overwrite the values and any call to130 * appendHeader(...) will try to append the value.131 *132 * @see set(header: String, values: Collection<*>)133 * @see set(header: String, value: Any)134 *135 * @param pairs [Pair<String, Any>] map of headers to replace. Value can be a list or single value136 * @return [Request] the modified request137 */138 fun header(vararg pairs: Pair<String, Any>): Request139 /**140 * Replace the header with the provided values141 *142 * @see set(header: String, values: Collection<*>)143 *144 * @param header [String] the header to set145 * @param values [List<Any>] the values to set the header to146 * @return [Request] the modified request147 */148 fun header(header: String, values: Collection<*>): Request149 /**150 * Replace the header with the provided value151 *152 * @see set(header: String, values: List<Any>)153 *154 * @param header [String] the header to set155 * @param value [Any] the value to set the header to156 * @return [Request] the modified request157 */158 fun header(header: String, value: Any): Request159 /**160 * Replace the header with the provided values161 *162 * @see set(header: String, values: List<Any>)163 *164 * @param header [String] the header to set165 * @param values [Any] the values to set the header to166 * @return [Request] the modified request167 */168 fun header(header: String, vararg values: Any): Request169 /**170 * Appends the value to the header or sets it if there was none yet171 *172 * @param header [String] the header name to append to173 * @param value [Any] the value to be transformed through #toString174 */175 fun appendHeader(header: String, value: Any): Request176 /**177 * Appends the value to the header or sets it if there was none yet178 *179 * @param header [String] the header name to append to180 * @param values [Any] the value to be transformed through #toString181 */182 fun appendHeader(header: String, vararg values: Any): Request183 /**184 * Append each pair, using the key as header name and value as header content185 *186 * @param pairs [Pair<String, Any>]187 */188 fun appendHeader(vararg pairs: Pair<String, Any>): Request189 /**190 * Execute the [Request] asynchronously, using the [handler], into a [ByteArray]191 *192 * @param handler [ResponseResultHandler] the handler to report the [Request], [Response] and Result of [ByteArray]193 * @return [CancellableRequest] the request in flight194 */...
DefaultRequest.kt
Source:DefaultRequest.kt
...51 /**52 * Set the values of the header, overriding what's there, after normalisation of the header53 *54 * @param header [String] the header name55 * @param values [Collection<*>] the values to be transformed through #toString56 * @return self57 */58 override operator fun set(header: String, values: Collection<*>): Request {59 headers[header] = values.map { it.toString() }60 return request61 }62 /**63 * Set the value of the header, overriding what's there, after normalisation of the header64 *65 * @param header [String] the header name66 * @param value [Any] the value to be transformed through #toString67 */68 override operator fun set(header: String, value: Any): Request {69 when (value) {70 is Collection<*> -> this[header] = value71 else -> headers[header] = value.toString()72 }73 return request74 }75 /**76 * Get the current values77 *78 * @see get(header: String)79 * @return [HeaderValues] the current values80 */81 override fun header(header: String) = get(header)82 /**83 * Replace the headers with the map provided84 *85 * @note In earlier versions the mapOf variant of this function worked differently than the vararg pairs variant,86 * which has been changed to make any call to header(...) always overwrite the values and any call to87 * appendHeader(...) will try to append the value.88 *89 * @see set(header: String, values: Collection<*>)90 * @see set(header: String, value: Any)91 *92 * @param map [Map<String, Any>] map of headers to replace. Value can be a list or single value93 * @return [Request] the modified request94 */95 override fun header(map: Map<String, Any>): Request {96 headers.putAll(Headers.from(map))97 return request98 }99 /**100 * Replace the headers with the pairs provided101 *102 * @note In earlier versions the mapOf variant of this function worked differently than the vararg pairs variant,103 * which has been changed to make any call to header(...) always overwrite the values and any call to104 * appendHeader(...) will try to append the value.105 *106 * @see set(header: String, values: Collection<*>)107 * @see set(header: String, value: Any)108 *109 * @param pairs [Pair<String, Any>] map of headers to replace. Value can be a list or single value110 * @return [Request] the modified request111 */112 override fun header(vararg pairs: Pair<String, Any>): Request {113 headers.putAll(Headers.from(*pairs))114 return request115 }116 /**117 * Replace the header with the provided values118 *119 * @see set(header: String, values: Collection<*>)120 *121 * @param header [String] the header to set122 * @param values [List<Any>] the values to set the header to123 * @return [Request] the modified request124 */125 override fun header(header: String, values: Collection<*>) = set(header, values)126 /**127 * Replace the header with the provided value128 *129 * @see set(header: String, values: List<Any>)130 *131 * @param header [String] the header to set132 * @param value [Any] the value to set the header to133 * @return [Request] the modified request134 */135 override fun header(header: String, value: Any): Request = set(header, value)136 /**137 * Replace the header with the provided values138 *139 * @see set(header: String, values: List<Any>)140 *141 * @param header [String] the header to set142 * @param values [Any] the values to set the header to143 * @return [Request] the modified request144 */145 override fun header(header: String, vararg values: Any) = set(header, values.toList())146 /**147 * Appends the value to the header or sets it if there was none yet148 *149 * @param header [String] the header name to append to150 * @param value [Any] the value to be transformed through #toString151 */152 override fun appendHeader(header: String, value: Any): Request {153 headers.append(header, value)154 return request155 }156 /**157 * Appends the value to the header or sets it if there was none yet158 *159 * @param header [String] the header name to append to160 * @param values [Any] the value to be transformed through #toString161 */162 override fun appendHeader(header: String, vararg values: Any): Request {163 headers.append(header, values.toList())164 return request165 }166 /**167 * Append each pair, using the key as header name and value as header content168 *169 * @param pairs [Pair<String, Any>]170 */171 override fun appendHeader(vararg pairs: Pair<String, Any>): Request {172 pairs.forEach { pair -> appendHeader(pair.first, pair.second) }173 return request174 }175 /**176 * Sets the body to be read from a generic body source.177 *178 * @note in earlier versions the body callback would be called multiple times in order to maybe get the size. But179 * that would lead to closed streams being unable to be read. If the size is known, set it before anything else.180 *181 * @param openStream [BodySource] a function that yields a stream182 * @param calculateLength [Number?] size in +bytes+ if it is known183 * @param charset [Charset] the charset to write with184 * @param repeatable [Boolean] loads the body into memory upon reading185 *186 * @return [Request] the request187 */188 override fun body(openStream: BodySource, calculateLength: BodyLength?, charset: Charset, repeatable: Boolean): Request {189 _body = DefaultBody190 .from(openStream = openStream, calculateLength = calculateLength, charset = charset)191 .let { body -> if (repeatable) body.asRepeatable() else body }192 return request193 }194 /**195 * Sets the body from a generic stream196 *197 * @note the stream will be read from the position it's at. Make sure you rewind it if you want it to be read from198 * the start.199 *200 * @param stream [InputStream] a stream to read from201 * @param calculateLength [Number?] size in bytes if it is known202 * @param charset [Charset] the charset to write with203 * @param repeatable [Boolean] loads the body into memory upon reading204 *205 * @return [Request] the request206 */207 override fun body(stream: InputStream, calculateLength: BodyLength?, charset: Charset, repeatable: Boolean) =208 body(openStream = { stream }, calculateLength = calculateLength, charset = charset, repeatable = repeatable)209 /**210 * Sets the body from a byte array211 *212 * @param bytes [ByteArray] the bytes to write213 * @param charset [Charset] the charset to write with214 * @return [Request] the request215 */216 override fun body(bytes: ByteArray, charset: Charset) =217 body(stream = ByteArrayInputStream(bytes), calculateLength = { bytes.size.toLong() }, charset = charset, repeatable = true)218 /**219 * Sets the body from a string220 *221 * @param body [String] the string to write222 * @param charset [Charset] the charset to write with223 * @return [Request] the request224 */225 override fun body(body: String, charset: Charset): Request =226 body(bytes = body.toByteArray(charset), charset = charset)227 .let {228 if (header(Headers.CONTENT_TYPE).lastOrNull().isNullOrBlank())229 header(Headers.CONTENT_TYPE, "text/plain; charset=${charset.name()}")230 else it231 }232 /**233 * Sets the body to the contents of a file.234 *235 * @note this does *NOT* make this a multipart upload. For that you can use the upload request. This function can be236 * used if you want to upload the single contents of a text based file as an inline body.237 *238 * @note when charset is not UTF-8, this forces the client to use chunked encoding, because file.length() gives the239 * length of the file in bytes without considering the charset. If the charset is to be considered, the file needs240 * to be read in its entirety which defeats the purpose of using a file.241 *242 * @param file [File] the file to write to the body243 * @param charset [Charset] the charset to write with244 * @return [Request] the request245 */246 override fun body(file: File, charset: Charset): Request = when (charset) {247 Charsets.UTF_8 -> body({ FileInputStream(file) }, { file.length() }, charset)248 else -> body({ FileInputStream(file) }, null, charset)249 }.let {250 if (header(Headers.CONTENT_TYPE).lastOrNull().isNullOrBlank()) {251 val contentType = URLConnection.guessContentTypeFromName(file.name)252 header(Headers.CONTENT_TYPE, "$contentType; charset=${charset.name()}")253 } else {254 it255 }256 }257 /**258 * Sets the body to a defined [Body]259 *260 * @param body [Body] the body to assign261 * @return [Request] the request262 */263 override fun body(body: Body): Request {264 _body = body265 return request266 }267 /**268 * Add a [ProgressCallback] tracking the [Body] of the [Request]269 *270 * @see body271 * @see com.github.kittinunf.fuel.core.requests.UploadRequest.progress272 *273 * @return self274 */275 override fun requestProgress(handler: ProgressCallback): Request {276 executionOptions.requestProgress += handler277 return request278 }279 /**280 * Add a [ProgressCallback] tracking the [Body] of the [com.github.kittinunf.fuel.core.Response]281 *282 * @see com.github.kittinunf.fuel.core.requests.DownloadRequest.progress283 *284 * @return self285 */286 override fun responseProgress(handler: ProgressCallback): Request {287 executionOptions.responseProgress += handler288 return request289 }290 /**291 * Add a [InterruptCallback] to the [RequestExecutionOptions]292 *293 * @see RequestExecutionOptions.interruptCallbacks294 *295 * @return self296 */297 override fun interrupt(interrupt: InterruptCallback) = request.also {298 it.executionOptions.interruptCallbacks.plusAssign(interrupt)299 }300 /**301 * Overwrite the [Request] [timeout] in milliseconds302 *303 * @note [com.github.kittinunf.fuel.core.Client] must implement this behaviour304 * @note the default client sets [java.net.HttpURLConnection.setConnectTimeout]305 *306 * @param timeout [Int] timeout in milliseconds307 * @return self308 */309 override fun timeout(timeout: Int) = request.also {310 it.executionOptions.timeoutInMillisecond = timeout311 }312 /**313 * Overwrite the [Request] [timeout] in milliseconds314 *315 * @note [com.github.kittinunf.fuel.core.Client] must implement this behaviour316 * @note the default client sets [java.net.HttpURLConnection.setReadTimeout]317 *318 * @param timeout [Int] timeout in milliseconds319 * @return self320 */321 override fun timeoutRead(timeout: Int) = request.also {322 it.executionOptions.timeoutReadInMillisecond = timeout323 }324 /**325 * Follow redirects as handled by instances of RedirectInterceptors326 * i.e. [com.github.kittinunf.fuel.core.interceptors.redirectResponseInterceptor]327 *328 * @note The interceptor must implement this behaviour329 * @note The provided RedirectResponseInterceptor defaults to true330 *331 * @param allowRedirects [Boolean] true if allowing, false if not332 * @return self333 */334 override fun allowRedirects(allowRedirects: Boolean) = request.also {335 it.executionOptions.allowRedirects = allowRedirects336 }337 /**338 * Overwrite [RequestExecutionOptions] http cache usage flag339 *340 * @note [com.github.kittinunf.fuel.core.Client] must implement this behaviour341 * @note The default client sends `Cache-Control: none` if this flag is false, defaults to true342 *343 * @see java.net.HttpURLConnection.setUseCaches344 * @param useHttpCache [Boolean] true if suggest client to allow cached responses, false otherwise345 */346 override fun useHttpCache(useHttpCache: Boolean) = request.also {347 it.executionOptions.useHttpCache = useHttpCache348 }349 /**350 * Overwrite [RequestExecutionOptions] response validator block351 *352 * @note The default responseValidator is to throw [com.github.kittinunf.fuel.core.HttpException]353 * @note if the response http status code is not in the range of (100 - 399) which should consider as failure response354 *355 * @param validator [ResponseValidator]356 * @return [Request] the modified request357 */358 override fun validate(validator: ResponseValidator) = request.also {359 it.executionOptions.responseValidator = validator360 }361 /**362 * Attach tag to the request363 *364 * @note tag is a generic purpose tagging for Request. This can be used to attach arbitrarily object to the Request instance.365 * @note Tags internally is represented as hashMap that uses class as a key.366 *367 * @param t [Any]368 * @return [Request] the modified request369 */370 override fun tag(t: Any) = request.also {371 tags[t::class] = t372 }373 /**374 * Return corresponding tag from the request375 *376 * @note tag is a generic purpose tagging for Request. This can be used to attach arbitrarily object to the Request instance.377 * @note Tags internally is represented as hashMap that uses class as a key.378 *379 * @param clazz [KClass]380 * @return [Any] previously attached tag if any, null otherwise381 */382 override fun <T : Any> getTag(clazz: KClass<T>) = tags[clazz] as? T383 override val request: Request get() = this384 /**385 * Returns a string representation of the request.386 *387 * @see com.github.kittinunf.fuel.core.extensions.httpString388 * @see com.github.kittinunf.fuel.core.extensions.cUrlString389 *390 * @return [String] the string representation391 */392 override fun toString(): String = buildString {393 appendln("--> $method $url")394 appendln("Body : ${body.asString(header(Headers.CONTENT_TYPE).lastOrNull())}")395 appendln("Headers : (${headers.size})")396 val appendHeaderWithValue = { key: String, value: String -> appendln("$key : $value") }397 headers.transformIterate(appendHeaderWithValue)398 }399 override fun response(handler: ResponseResultHandler<ByteArray>) =400 response(ByteArrayDeserializer(), handler)401 override fun response(handler: ResultHandler<ByteArray>) =402 response(ByteArrayDeserializer(), handler)403 override fun response(handler: ResponseHandler<ByteArray>) =404 response(ByteArrayDeserializer(), handler)405 override fun response(handler: Handler<ByteArray>) =406 response(ByteArrayDeserializer(), handler)...
DownLoadAppService.kt
Source:DownLoadAppService.kt
...157 notifyManager.cancel(NOTIFY_ID_DOWNLOAD)158 installApp()159 downloadFinishFlag = true160 }, {161 Logger.i(it.message.toString())162 downloadFinishFlag = false163 })164 )165 }166 private fun updateProgress(progress: Float) {167 customRemoteViews.setProgressBar(168 R.id.notify_progress,169 100,170 ceil(progress).toInt(),171 false172 )173 customRemoteViews.setTextViewText(174 R.id.tvProgress,175 "${ceil(progress).toInt()}%"...
Extensions.kt
Source:Extensions.kt
...128 val returnEmptyInputStream: () -> InputStream = { ByteArrayInputStream(ByteArray(0)) }129 (this as DownloadRequest).streamDestination { _, _ -> Pair(outputStream, returnEmptyInputStream) }130 .response()131 }132 val headReq = headRequest(this.url.toString(), null)133 val response = headReq.response()134 .second135 val httpStatus = httpStatusFromCode(response.statusCode)136 val headers = headersToMultiMap(response.headers)137 return ResponseEntity(responseBody, headers, httpStatus)138}139fun File.md5sum(): String140{141 val md = MessageDigest.getInstance("MD5")142 FileInputStream(this).use { fis ->143 DigestInputStream(fis, md).use { dis ->144 dis.readBytes()145 }146 }...
DownloadRequest.kt
Source:DownloadRequest.kt
...13typealias StreamDestinationCallback = (Response, Request) -> Pair<OutputStream, DestinationAsStreamCallback>14typealias DestinationAsStreamCallback = () -> InputStream15class DownloadRequest private constructor(private val wrapped: Request) : Request by wrapped {16 override val request: DownloadRequest = this17 override fun toString() = "Download[\n\r\t$wrapped\n\r]"18 private lateinit var destinationCallback: StreamDestinationCallback19 init {20 executionOptions += this::transformResponse21 }22 @Deprecated("Use fileDestination with (Request, Response) -> File")23 fun destination(destination: LegacyDestinationCallback) =24 fileDestination { response: Response, request: Request -> destination(response, request.url) }25 /**26 * Set the destination callback27 *28 * @note destination *MUST* be writable or this may or may not silently fail, dependent on the JVM/engine this is29 * called on. For example, Android silently fails and hangs if used an inaccessible temporary directory, which30 * is syntactically valid.31 *...
toString
Using AI Code Generation
1val downloadString = downloadRequest.toString()2val downloadString = downloadRequest.toString()3val downloadString = downloadRequest.toString()4val downloadString = downloadRequest.toString()5val downloadString = downloadRequest.toString()6val downloadString = downloadRequest.toString()7val downloadString = downloadRequest.toString()8val downloadString = downloadRequest.toString()9val downloadString = downloadRequest.toString()10val downloadString = downloadRequest.toString()11val downloadString = downloadRequest.toString()
toString
Using AI Code Generation
1File.createTempFile("download", ".png")2}3val downloadRequestString = downloadRequest.toString()4val uploadRequestString = uploadRequest.toString()5val streamingRequestString = streamingRequest.toString()6val cancellableRequestString = cancellableRequest.toString()7val requestString = request.toString()8val blobRequestString = blobRequest.toString()9val dataRequestString = dataRequest.toString()10val stringRequestString = stringRequest.toString()11val jsonRequestString = jsonRequest.toString()12val byteArrayRequestString = byteArrayRequest.toString()13val objectRequestString = objectRequest.toString()
toString
Using AI Code Generation
1val downloadRequestString = downloadRequest.toString()2val downloadRequestString = downloadRequest.toString()3val downloadRequestString = downloadRequest.toString()4val downloadRequestString = downloadRequest.toString()5val downloadRequestString = downloadRequest.toString()6val downloadRequestString = downloadRequest.toString()7val downloadRequestString = downloadRequest.toString()8val downloadRequestString = downloadRequest.toString()9val downloadRequestString = downloadRequest.toString()10val downloadRequestString = downloadRequest.toString()11val downloadRequestString = downloadRequest.toString()12val downloadRequestString = downloadRequest.toString()
toString
Using AI Code Generation
1val downloadRequestToString = downloadRequest.toString()2println(downloadRequestToString)3val downloadRequestToString = downloadRequest.toString()4println(downloadRequestToString)5val downloadRequestToString = downloadRequest.toString()6println(downloadRequestToString)7val downloadRequestToString = downloadRequest.toString()8println(downloadRequestToString)9val downloadRequestToString = downloadRequest.toString()10println(downloadRequestToString)11val downloadRequestToString = downloadRequest.toString()12println(downloadRequestToString)13val downloadRequestToString = downloadRequest.toString()14println(downloadRequestToString)15val downloadRequestToString = downloadRequest.toString()16println(downloadRequestToString)
toString
Using AI Code Generation
1println(downloadRequest.toString())2println(uploadRequest.toString())3println(headRequest.toString())4println(patchRequest.toString())5println(putRequest.toString())6println(deleteRequest.toString())7println(traceRequest.toString())8println(optionsRequest.toString())9println(connectRequest.toString())
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!