有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用“Contenttype:application/xwwwformurlencoded”发出Okhttp请求?

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

内容类型-应用程序/x-www-form-urlencoded

authKey-(会话令牌)

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

storeId-1

类型-产品

类别ID-324

但每当我点击这个api,我总是得到401(未经授权)错误。 我尝试过使用MultipartRequest body和formBody,我知道这与body无关(它是我需要发送内容类型和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通过改造库给出响应,所以如何使用Okhttp实现这一点


共 (1) 个答案

  1. # 1 楼答案

    这会有帮助吗

    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();