OKHttp Required request body is missing

最近在安卓新项目上遇到个比较奇怪的问题。Retrofit+okhttp发送post请求,出现Required request body is missing,这一看像是服务端接口的异常,没接收到请求参数的对象。

Postman发起请求,居然能正常接收。

既然如此,抓包,Fiddler开起来。

Conten-Type看着也没问题。

那就写的Okhttp请求测试。只设置参数,header不设置。居然也不行,怪哉。难道我写的代码有问题?去网上随便复制了一个okhttp的请求demo,改完接口参数居然可以,唯一的区别就是它设置了Conten-Type:application/json;charset=UTF-8;这不是和刚刚fiddler抓到的一样吗?

虽然我不愿意相信是okhttp默认的Conten-Type搞得鬼,但事实如此。也许是charset前面那个空格引起的,也可能是服务器哪里配置错了,就先这样吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Jepass(可能指的是Java或JavaScript中的某个库,但通常是指JetBrains的IntelliJ IDEA插件)中,当你尝试发送一个POST请求但是没有提供必需的请求体(body)时,通常会收到一个`400 Bad Request`错误,具体信息可能是 "Required request body is missing" 或者类似的提示,意思是服务器正在期待一个JSON、XML或其他形式的数据,但在请求中没有接收到。 这里有几个可能的原因: 1. **缺少请求头**: 确保你的POST请求头包含了`Content-Type`字段,常见的设置是`Content-Type: application/json`,表示你正发送JSON格式的数据。 2. **请求体设置不正确**: 在发送请求时,检查你的代码是否正确地设置了请求体。例如,在使用HTTP客户端库(如HttpClient、axios或fetch)时,可能需要像这样设置: ```java // Java (OkHttp) RequestBody requestBody = FormBody.create(MediaType.parse("application/json"), yourJsonData); Request request = new Request.Builder() .url(yourUrl) .post(requestBody) .build(); // JavaScript (axios) axios.post(yourUrl, yourJsonData, { headers: { 'Content-Type': 'application/json' } }) ``` 3. **检查请求构建**: 如果你在使用IntelliJ IDEA的插件API发送请求,确保你正确地构建了请求,并传递了数据。 如果以上都没问题,检查一下你的服务器端配置,确保它能接受空请求体或者配置了正确的默认行为。如果还是无法解决,分享更多的代码片段或详细步骤以便更精确地诊断问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值