如何使用“ Content-type:application / x-www-form-urlencoded”发出Okhttp请求?

时间:2018-07-10 07:04:49

标签: java android retrofit okhttp okhttp3

我有一个在标头中发送以下参数的api要求-

Content-Type-应用程序/ x-www-form-urlencoded

authKey-(会话令牌)

以及正文中的以下参数(表单日,即键值对)

storeId -1

类型-产品

CategoryId -324

但是,每当我按下此api时,我总是会收到401(UnAuthorized)错误。 我试过使用MultipartRequest正文和formBody,我知道这与正文无关(它是我需要发送Content-Type和authKey的标头)。下面是我的代码-

Request.Builder  requestBuilder = new Request.Builder();
requestBuilder.addHeader("Content-Type", "application/x-www-form-urlencoded");
    requestBuilder.addHeader("authKey",AppSharedPref.getTokenMobikul(context));
RequestBody formbody = new FormBody.Builder().add("CategoryId",bodyparms.get(0)).
                        add("type",bodyparms.get(1)).build();
 requestBuilder.post(formbody);

同一个api通过改造库提供Response,因此如何使用Okhttp实现。

1 个答案:

答案 0 :(得分:0)

这可能会帮助

FormBody.Builder formBuilder = new FormBody.Builder()
    .add("key", "value");

// add more parameter as follow:
formBuilder.add("mobile", "9999999999");

RequestBody formBody = formBuilder.build();

Request request = new Request.Builder()
            .url("https://www.hittheserver.com")
            .post(formBody)
            .build();