如何在没有请求主体的情况下发出OKHTTP发布请求?

Jus*_*ous 26 android http-post okhttp

在okhttp库中没有请求主体的情况下制作OkHTTP发布请求的可能方法?

Jus*_*ous 55

    RequestBody reqbody = RequestBody.create(null, new byte[0]);  
    Request.Builder formBody = new Request.Builder().url(url).method("POST",reqbody).header("Content-Length", "0");
    clientOk.newCall(formBody.build()).enqueue(OkHttpCallBack());
Run Code Online (Sandbox Code Playgroud)


小智 20

这对我有用:

RequestBody body = RequestBody.create(null, new byte[]{});
Run Code Online (Sandbox Code Playgroud)

  • 或者`RequestBody.create(null,"")` (11认同)
  • 或`RequestBody.create(“”,null)`,如果您使用的是最新版本,并且不喜欢弃用警告。:) (2认同)

Mob*_*Ben 13

我在用着okhttp3

您还可以对空请求正文执行此操作:

val empty: RequestBody = EMPTY_REQUEST
Run Code Online (Sandbox Code Playgroud)

为一个POST

val request = Request.Builder().url(http).post(EMPTY_REQUEST).build()
Run Code Online (Sandbox Code Playgroud)


Ale*_*lex 5

  • "".toRequestBody()
  • "".toRequestBody("application/json".toMediaTypeOrNull())

...取决于您的端点期望的媒体类型。

  • 顺便说一句,这个答案是针对 kotlin 的。如果 IDE 无法识别这一点,则必须导入扩展函数:“import okhttp3.RequestBody.Companion.toRequestBody” (2认同)