提问者:小点点

如何在Android中使用okhttp发送纯文本作为请求主体?


我需要将纯文本作为请求有效负载发送到我的Web应用程序。但是我不能使用okhttp。我不需要okhttp附带的复杂的身体构建器,例如FormBody. Builder()或MultipartBody.Builder()。我只需要一个简单的文本正文附加到POST超文本传输协议请求标头。类似这样:

val myBody = "my own body text that my server understands"
val request = Request.Builder()
            .url(myUrl)
            .post(myBody) //does not work.
            .build()
        okHttpClient.newCall(request)...

如果okhttp做不到,是否有替代方案可以使用?


共1个答案

匿名用户

您可以使用OkHttp。

您可以在食谱-发布字符串中找到一个示例

像这样的东西:

private val client = OkHttpClient()

  fun run() {
    val postBody = """
        |Releases
        |--------
        |
        | * _1.0_ May 6, 2013
        | * _1.1_ June 15, 2013
        | * _1.2_ August 11, 2013
        |""".trimMargin()

    val request = Request.Builder()
        .url("https://api.github.com/markdown/raw")
        .post(postBody.toRequestBody(MEDIA_TYPE_MARKDOWN))
        .build()

    client.newCall(request).execute().use { response ->
      if (!response.isSuccessful) throw IOException("Unexpected code $response")

      println(response.body!!.string())
    }
  }

  companion object {
    val MEDIA_TYPE_MARKDOWN = "text/x-markdown; charset=utf-8".toMediaType()
  }