Http request 获取不到请求内容的总结

今日问题

先看一段日志输出:

POST /upload HTTP/1.1
cookie: JSESSIONID=39E2FDADEAEB955EAFF9B91CDD827D07
postman-token: 165e07cd-8f52-4988-99a8-9d71f3978b1c
host: 127.0.0.1:8080
content-type: multipart/form-data; boundary=--------------------------874425391893936909568582
cache-control: no-cache
accept-encoding: gzip, deflate, br
user-agent: PostmanRuntime/7.28.1
accept: */*
Connection: close
Content-Length: 123

--IVs5UYwiM2X9kWjmlHJDZhh_2AJFAEwA9
Content-Disposition: form-data; name="head"

--IVs5UYwiM2X9kWjmlHJDZhh_2AJFAEwA9
Content-Disposition: form-data; name="body"

 ssss
--IVs5UYwiM2X9kWjmlHJDZhh_2AJFAEwA9--

简单描述一下问题。
工程需要做一个代理。就是很简单收到东西再转发出去。
但是代理收到了请求。转发后也收到了东西。见上面的日志 是socket输出的。
但是request 的 Parameter就是什么也输出不出来。
最后发现。是因为代理在转发时候将content-type 获取后也转发了出来。需要注意的是注意日志中的内容

content-type: multipart/form-data; boundary=--------------------------874425391893936909568582

与下面的

--IVs5UYwiM2X9kWjmlHJDZhh_2AJFAEwA9

是不一样的。 主要是boundary 是通过转发获取的。
而下面的是通过httpclient创建的。
最终导致了 request 获取不到Parameter
解决办法再代理进行转发的时候过滤到contenttype就行了

总结一下。

获取不到数据的大致问题

  1. Parameter 压根就没有
  2. content type 类型不匹配 ,举例你传的json 用的form 肯定收不到
  3. boundary 不一致导致【今天碰见的】

剩下再总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值