【问题标题】:How to make OKHTTP post request without a request body?如何在没有请求正文的情况下发出 OKHTTP 发布请求?
【发布时间】:2016-06-15 02:05:39
【问题描述】:

有什么方法可以使用没有请求正文的 OkHTTP 发出 post 请求?

【问题讨论】:

    标签: android http-post okhttp


    【解决方案1】:
        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());
    

    【讨论】:

    • 是你的答案还是问题??
    【解决方案2】:

    这对我有用:

    RequestBody body = RequestBody.create(null, new byte[]{});
    

    【讨论】:

    • RequestBody.create(null, "")
    • RequestBody.create("", null),如果您使用的是最新版本并且不喜欢弃用警告。 :)
    • 试试"".toRequestBody()"".toRequestBody("application/json".toMediaTypeOrNull())
    【解决方案3】:
    • "".toRequestBody()
    • "".toRequestBody("application/json".toMediaTypeOrNull())

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

    【讨论】:

    • 此答案适用于 kotlin 顺便说一句。如果 IDE 无法识别,则必须导入扩展函数:import okhttp3.RequestBody.Companion.toRequestBody
    【解决方案4】:

    我正在使用okhttp3

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

    val empty: RequestBody = EMPTY_REQUEST
    

    对于POST

    val request = Request.Builder().url(http).post(EMPTY_REQUEST).build()
    

    【讨论】:

    • 完美!谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    • 2011-09-02
    • 1970-01-01
    相关资源
    最近更新 更多