httpclient post 总是返回400

最近在使用httpclient模拟shopee电商网站的登陆接口,添加cookie绕过了403错误,无耐又报了400错误。

因为我当时连参数都没有带上,所以心里想的是怎么可能报400错误呢?要报也应该提示我没有带上参数才对啊。

以下是我要模拟的接口图:

因为我在POSTMAN里面content-type使用的是x-www-form-urlencodeed返回的是200,所以我认为httpclient中设置content-type=x-www-form-urlencodeed也是可以的。无奈,经过好多天的测试都失败了。

从上图可以看到传参使用的是multipart/form-data格式的。说明:使用这个格式一般是上传文件,但是这边只是用来传参也是可以的!!!

以下是正确代码,希望能遇到这类坑的同胞一点生机。

​
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
ContentType contentType=ContentType.create("text/plain", Charset.forName("UTF-8"));
builder.setCharset(java.nio.charset.Charset.forName("UTF-8"));
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);

builder.addPart("login_key", new StringBody(login_key,contentType));
builder.addPart("login_type", new StringBody(login_type,contentType));
builder.addPart("password_hash", new StringBody(password_hash,contentType));
builder.addPart("captcha", new StringBody(captcha,contentType));
builder.addPart("remember_me", new StringBody(remember_me,contentType));

httppost2.setEntity(builder.build());

​

header中就不要设置content-type了。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值