@@ -48,30 +48,38 @@ fun HttpRequestBuilder.handleHeaders(headers: List<Header>?) {
4848 headers?.apply { for (header in this ) header(header.key, header.value) }
4949}
5050
51- suspend inline fun HttpClient.getRequest (url : String , headers : List <Header >? , httpRequestScope : HttpRequestBuilder .() -> Unit ): HttpResponse = get(urlString = url) {
51+ fun HttpRequestBuilder.handlerCookies (cookies : List <Cookie >? ){
52+ cookies?.apply { for (cookie in this ) cookie(cookie.name, cookie.value) }
53+ }
54+
55+ suspend inline fun HttpClient.getRequest (url : String , headers : List <Header >? ,cookies : List <Cookie >? =null, httpRequestScope : HttpRequestBuilder .() -> Unit ): HttpResponse = get(urlString = url) {
56+ handlerCookies(cookies)
5257 handleHeaders(headers)
5358 httpRequestScope()
5459}
5560
56- suspend inline fun HttpClient.postRequest (url : String , headers : List <Header >? , httpRequestScope : HttpRequestBuilder .() -> Unit ): HttpResponse = post(urlString = url) {
61+ suspend inline fun HttpClient.postRequest (url : String , headers : List <Header >? , cookies : List <Cookie >? =null,httpRequestScope : HttpRequestBuilder .() -> Unit ): HttpResponse = post(urlString = url) {
62+ handlerCookies(cookies)
5763 handleHeaders(headers)
5864 httpRequestScope()
5965}
6066
61- suspend inline fun HttpClient.patchRequest (url : String , headers : List <Header >? , httpRequestScope : HttpRequestBuilder .() -> Unit ): HttpResponse = patch(urlString = url) {
67+ suspend inline fun HttpClient.patchRequest (url : String , headers : List <Header >? ,cookies : List <Cookie >? =null, httpRequestScope : HttpRequestBuilder .() -> Unit ): HttpResponse = patch(urlString = url) {
68+ handlerCookies(cookies)
6269 handleHeaders(headers)
6370 httpRequestScope()
6471}
6572
66- suspend inline fun HttpClient.deleteRequest (url : String , headers : List <Header >? , httpRequestScope : HttpRequestBuilder .() -> Unit ): HttpResponse = delete(urlString = url) {
73+ suspend inline fun HttpClient.deleteRequest (url : String , headers : List <Header >? ,cookies : List <Cookie >? =null, httpRequestScope : HttpRequestBuilder .() -> Unit ): HttpResponse = delete(urlString = url) {
74+ handlerCookies(cookies)
6775 handleHeaders(headers)
6876 httpRequestScope()
6977}
7078
7179@OptIn(InternalAPI ::class )
72- suspend fun HttpClient.multiPartRequest (httpType : Int = POST , url : String , headers : List <Header >? , listener : ProgressListener , multipartBody : MultipartBody ): HttpResponse {
80+ suspend fun HttpClient.multiPartRequest (httpType : Int = POST , url : String , headers : List <Header >? ,cookies : List < Cookie > ? =null, listener : ProgressListener , multipartBody : MultipartBody ): HttpResponse {
7381 return when (httpType) {
74- POST -> postRequest(url, headers) {
82+ POST -> postRequest(url, headers,cookies ) {
7583 setBody(MultiPartFormDataContent (
7684 formData {
7785 multipartBody.appends?.apply {
@@ -97,16 +105,16 @@ suspend fun HttpClient.multiPartRequest(httpType: Int = POST, url: String, heade
97105 * @param defaultConfig DefaultConfig
98106 * @return HttpResponse
99107 */
100- suspend fun sendKtorDownload (httpType : Int = GET , url : String , headers : List <Header >? = null, listener : ProgressListener = { _, _ -> }, defaultConfig : DefaultConfig = DefaultConfig (EmptyString )) = ktorClient(defaultConfig).use {
108+ suspend fun sendKtorDownload (httpType : Int = GET , url : String , headers : List <Header >? = null,cookies : List < Cookie > ? =null, listener : ProgressListener = { _, _ -> }, defaultConfig : DefaultConfig = DefaultConfig (EmptyString )) = ktorClient(defaultConfig).use {
101109 when (httpType) {
102- GET -> it.getRequest(url, headers) { onDownload(listener) }
103- POST -> it.postRequest(url, headers) { onDownload(listener) }
110+ GET -> it.getRequest(url, headers,cookies ) { onDownload(listener) }
111+ POST -> it.postRequest(url, headers,cookies ) { onDownload(listener) }
104112 else -> throw RuntimeException (" sendKtorDownload not implemented yet,The current RequestType value is $httpType " )
105113 }
106114}
107115
108- suspend fun sendKtorUpload (httpType : Int = POST , url : String , headers : List <Header >? = null, multipartBody : MultipartBody , listener : ProgressListener = { _, _ -> }, defaultConfig : DefaultConfig = DefaultConfig (EmptyString )) = ktorClient(defaultConfig).use {
109- it.multiPartRequest(httpType, url, headers, listener, multipartBody)
116+ suspend fun sendKtorUpload (httpType : Int = POST , url : String , headers : List <Header >? = null,cookies : List < Cookie > ? =null, multipartBody : MultipartBody , listener : ProgressListener = { _, _ -> }, defaultConfig : DefaultConfig = DefaultConfig (EmptyString )) = ktorClient(defaultConfig).use {
117+ it.multiPartRequest(httpType, url, headers,cookies, listener, multipartBody)
110118}
111119
112120
@@ -121,61 +129,66 @@ suspend fun sendKtorUpload(httpType: Int = POST, url: String, headers: List<Head
121129 * @param appends @Body = FormUrlEncoded 时有数据
122130 * @return Any?
123131 */
124- suspend inline fun sendKtorRequest (httpType : Int = GET , bodyType : Int = NONE , url : String , headers : List <Header >? = null, parameters : HttpRequestBuilder .() -> Unit = {}, requestBody : Any = EmptyContent , appends : ParametersBuilder .() -> Unit = {}, defaultConfig : DefaultConfig = DefaultConfig (EmptyString )) = ktorClient(defaultConfig).use {
132+ suspend inline fun sendKtorRequest (httpType : Int = GET , bodyType : Int = NONE , url : String , headers : List <Header >? = null,cookies : List < Cookie > ? =null, parameters : HttpRequestBuilder .() -> Unit = {}, requestBody : Any = EmptyContent , appends : ParametersBuilder .() -> Unit = {}, defaultConfig : DefaultConfig = DefaultConfig (EmptyString )) = ktorClient(defaultConfig).use {
125133 when (httpType) {
126134 GET -> {
127135 when (bodyType) {
128- NONE -> it.getRequest(url, headers) { parameters() }
129- TEXT -> it.getRequest(url, headers?.plus(textHeader) ? : listOf (textHeader)) { setBody(Gson ().toJson(requestBody)) }
130- JSON -> it.getRequest(url, headers) { setBody(requestBody) }
131- FormData -> it.submitForm(url = url, Parameters .build(appends), encodeInQuery = true ) { handleHeaders(headers) }
132- FormUrlEncoded -> it.getRequest(url, headers) { setBody(FormDataContent (Parameters .build(appends))) }
136+ NONE -> it.getRequest(url, headers,cookies) { parameters() }
137+ TEXT -> it.getRequest(url, headers?.plus(textHeader) ? : listOf (textHeader),cookies) { setBody(Gson ().toJson(requestBody)) }
138+ JSON -> it.getRequest(url, headers,cookies) { setBody(requestBody) }
139+ FormData -> it.submitForm(url = url, Parameters .build(appends), encodeInQuery = true ) {
140+ handlerCookies(cookies)
141+ handleHeaders(headers) }
142+ FormUrlEncoded -> it.getRequest(url, headers,cookies) { setBody(FormDataContent (Parameters .build(appends))) }
133143 else -> throw RuntimeException (" get other error" )
134144 }
135145 }
136146 POST -> {
137147 when (bodyType) {
138- NONE -> it.postRequest(url, headers) { parameters() }
139- TEXT -> it.postRequest(url, headers?.plus(textHeader) ? : listOf (textHeader)) { setBody(Gson ().toJson(requestBody)) }
140- JSON -> it.postRequest(url, headers) { setBody(requestBody) }
148+ NONE -> it.postRequest(url, headers,cookies ) { parameters() }
149+ TEXT -> it.postRequest(url, headers?.plus(textHeader) ? : listOf (textHeader),cookies ) { setBody(Gson ().toJson(requestBody)) }
150+ JSON -> it.postRequest(url, headers,cookies ) { setBody(requestBody) }
141151 FormData -> it.submitForm(url = url, Parameters .build(appends)) {
152+ handlerCookies(cookies)
142153 handleHeaders(headers)
143154 }
144- FormUrlEncoded -> it.postRequest(url, headers) {
155+ FormUrlEncoded -> it.postRequest(url, headers,cookies ) {
145156 setBody(FormDataContent (Parameters .build(appends)))
146157 }
147158 else -> throw RuntimeException (" post other error" )
148159 }
149160 }
150161 PATCH -> {
151162 when (bodyType) {
152- NONE -> it.patchRequest(url, headers) { parameters() }
153- TEXT -> it.patchRequest(url, headers?.plus(textHeader) ? : listOf (textHeader)) {
163+ NONE -> it.patchRequest(url, headers,cookies ) { parameters() }
164+ TEXT -> it.patchRequest(url, headers?.plus(textHeader) ? : listOf (textHeader),cookies ) {
154165 setBody(Gson ().toJson(requestBody))
155166 }
156- JSON -> it.patchRequest(url, headers) {
167+ JSON -> it.patchRequest(url, headers,cookies ) {
157168 setBody(requestBody)
158169 }
159170 FormData -> it.submitForm(url = url, Parameters .build(appends)) {
171+ handlerCookies(cookies)
160172 handleHeaders(headers)
161173 }
162- FormUrlEncoded -> it.patchRequest(url, headers) {
174+ FormUrlEncoded -> it.patchRequest(url, headers,cookies ) {
163175 setBody(FormDataContent (Parameters .build(appends)))
164176 }
165177 else -> throw RuntimeException (" patch other error" )
166178 }
167179 }
168180 DELETE -> {
169181 when (bodyType) {
170- NONE -> it.deleteRequest(url, headers) { parameters() }
171- TEXT -> it.deleteRequest(url, headers?.plus(textHeader) ? : listOf (textHeader)) {
182+ NONE -> it.deleteRequest(url, headers,cookies ) { parameters() }
183+ TEXT -> it.deleteRequest(url, headers?.plus(textHeader) ? : listOf (textHeader),cookies ) {
172184 setBody(Gson ().toJson(requestBody))
173185 }
174- JSON -> it.deleteRequest(url, headers) { setBody(requestBody) }
186+ JSON -> it.deleteRequest(url, headers,cookies ) { setBody(requestBody) }
175187 FormData -> it.submitForm(url = url, Parameters .build(appends)) {
188+ handlerCookies(cookies)
176189 handleHeaders(headers)
177190 }
178- FormUrlEncoded -> it.deleteRequest(url, headers) {
191+ FormUrlEncoded -> it.deleteRequest(url, headers,cookies ) {
179192 setBody(FormDataContent (Parameters .build(appends)))
180193 }
181194 else -> throw RuntimeException (" delete other error" )
0 commit comments