zoukankan      html  css  js  c++  java
  • 对接第三方支付接口-获取http中的返回参数

    这几天对接第三方支付接口,在回调通知里获取返回参数,有一家返回的json格式,请求参数可以从标准输入流中获取。

        //1.解析参数 , 读取请求内容
            BufferedReader br;
            String line = null;
            StringBuilder sb = new StringBuilder();
            try {
                br = new BufferedReader(new InputStreamReader(request.getInputStream(),"utf-8"));
                while((line = br.readLine())!=null){
                    sb.append(line);
                }
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            
            String params = sb.toString();
            
            //2.转成json
            JSONObject jsonParams = JSONObject.fromObject(params);

    以上是返回json格式。

    如果返回K=V&...这种格式,即可直接从request中获取,具体做法为request.getParameter("keyName");这里有个问题,如果以K=V&...这种形式,则不要以读标准流的方式获取参数,这样会导致下面在request.getParameter中获取不到值,而且读出来也不是json格式。

    即在使用HTTP协议实现应用间接口通信时,服务端读取客户端请求过来的数据,会用到request.getInputStream(),第一次读取的时候可以读取到数据,但是接下来的读取操作都读取不到数据。

    原因是:

    InputStream并没有实现reset方法(可以重置首次读取的位置),无法实现重置操作;

    一个InputStream对象在被读取完成后,将无法被再次读取,始终返回-1。

    解决方案可以让inputStream.reset一下。

  • 相关阅读:
    神经网络(2)---neurons and the brain
    P2P system:How Chord tackles failures
    如何成为更好的自己
    P2P system: Chord
    P2P system: FastTrack and BitTorrent
    P2P system: GNUTELLA
    P2P system: Napster
    P2P system: Introduction
    幸福公开课(2)
    MTV与MVC 多对多表的创建方式 前后端传输数据编码格式 ajax 批量插入数据 自定义分页器
  • 原文地址:https://www.cnblogs.com/mark8080/p/6235908.html
Copyright © 2011-2022 走看看