【问题标题】:send request in data-form以数据形式发送请求
【发布时间】:2022-08-06 15:34:18
【问题描述】:

我正在使用一个 API,在登录部分 API 只接受“data-form”请求 这是我在多次搜索后找到的解决方案,但它不起作用

@Multipart
@POST(\"oauth/token\")
suspend fun loginUser (@Part (\"username\") username:RequestBody,
                       @Part (\"password\") password:RequestBody,
                       @Part(\"grant_type\") grantType:RequestBody):Response<Any>

这是我在 MainActivity 中接受的指令

val pass=\"password\"
            lifecycleScope.launch {
               val request= movieService.loginUser(
                    username = userName.toRequestBody(\"text/plain\".toMediaTypeOrNull()),
                    password = password.toRequestBody(\"text/plain\".toMediaTypeOrNull()),
                    grantType = pass.toRequestBody(\"text/plain\".toMediaTypeOrNull())
                )
                Log.i(\"login\",request.body().toString())
            }

    标签: android kotlin retrofit2


    【解决方案1】:

    不要使用 from @Multipart.Multipart 使用 from 将文件发送到服务器。尝试使用 @FormUrlEncode.and 使用 @Field 发送您的数据。

    @FormUrlEncoded
    @POST("oauth/token")
    suspend fun loginUser (@Field("username") username:String,
                           @Field("password") password:String,
                           @Field("grant_type") grantType:String):Response<Any>
    

    【讨论】:

    【解决方案2】:

    经过多次研究,我找到了这个解决方案:

    片段结构

    val userNameBody :RequestBody= userName.toRequestBody()
                val passwordBody: RequestBody = password.toRequestBody()
                val grantTypeBody: RequestBody = "password".toRequestBody()
    
    
    
                viewModel.loginUser(userNameBody,passwordBody,grantTypeBody
    

    API服务架构

    @Multipart
    @POST("oauth/token")
    suspend fun loginUser (@Part ("username") username:RequestBody,
                           @Part ("password") password:RequestBody,
                           @Part("grant_type") grantType:RequestBody
    ):Response<UserAuthModel>
    

    【讨论】:

      猜你喜欢
      • 2018-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-21
      相关资源
      最近更新 更多