使用HttpRequestBuilder构建请求时FormData缺失问题排查
问题分析与解决方案
你的代码问题出在错误使用了formData扩展函数:这个函数用于构建multipart/form-data类型的请求体,但你没有将构建好的表单内容设置为请求的body,导致最终请求里没有携带FormData。
根据你的需求,分两种场景给出修正后的代码:
场景1:普通键值对表单(application/x-www-form-urlencoded)
这是大部分常规表单提交的场景,直接用parameters添加参数即可,框架会自动处理内容类型:
val client = HttpClient() val request = HttpRequestBuilder().apply { url("https://httpbin.org/post") method = HttpMethod.Post parameters.append("objectType", "2") } val response = client.request(request)
场景2:多部分表单(multipart/form-data)
如果需要上传文件或复杂表单结构,需要将formData构建的内容通过setBody赋值给请求体:
val client = HttpClient() val request = HttpRequestBuilder().apply { url("https://httpbin.org/post") method = HttpMethod.Post setBody(formData { append("objectType", "2") }) } val response = client.request(request)
内容的提问来源于stack exchange,提问作者Aleksei Tirman
相关产品推荐
相关产品推荐

