http 请求提交json 数据 一定要按规格提交

1 篇文章 0 订阅

最近,接了个三方支付,三方发的是form表达请求头 ,传的是json 数据 ,响应解析一直解析不到,难受死,后来纠结中发现问题,给各位友们,防坑秘籍!  

 json 数据 提交的 需配置  Content-Type:application/json    : JSON数据格式

 HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection();

      // 设置是否向connection输出,因为这个是post请求,参数要放在
      // http正文内,因此需要设为true
      connection.setDoOutput(true);
      // Read from the connection. Default is true.
      connection.setDoInput(true);
      // 默认是 GET方式
      connection.setRequestMethod("POST");

      // Post 请求不能使用缓存
      connection.setUseCaches(false);

      connection.setInstanceFollowRedirects(true);

      // 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的
      // 意思是正文是urlencoded编码过的form参数,下面我们可以看到我们对正文内容使用URLEncoder.encode
      // 进行编码
      connection.setRequestProperty("Content-Type", "application/json"); // application/x-www-form-urlencoded  application/json
      // 连接,从postUrl.openConnection()至此的配置必须要在connect之前完成,
      // 要注意的是connection.getOutputStream会隐含的进行connect。

      connection.connect();

顺便了解下其他提交方式 

MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。

例如: Content-Type: text/html;charset:utf-8;

常见的媒体格式类型如下:

text/html : HTML格式
text/plain :纯文本格式     
text/xml :  XML格式
image/gif :gif图片格式   
image/jpeg :jpg图片格式
image/png:png图片格式

 以application开头的媒体格式类型:

application/xhtml+xml :XHTML格式
application/xml     : XML数据格式
application/atom+xml  :Atom XML聚合格式   
application/json    : JSON数据格式
application/pdf       :pdf格式 
application/msword  : Word文档格式
application/octet-stream : 二进制流数据(如常见的文件下载)
application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)

 另外一种常见的媒体格式是上传文件之时使用的:

multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值