精华内容
下载资源
问答
  • 数据接口推送的区别
    2022-03-10 14:59:29

    1.

    RestTemplate有两个核心方法来执行Get请求

    1.RestTemplate.getForObject 方法可以获取对象

    2.RestTemplate.getForEntity 方法不仅可以获取对象,还可以获取Http状态码,请求头等详细信息。

    2.

    RestTemplate的Post方法包含两个核心方法

    1.postForObject

    2.postForEntity

    RestTemplate的传参:

    RestTemplate的Post方法与Get方法的区别是Post方法传参Map必须是MultiValueMap

    Post方法的MultiValueMap既支持基本类型分开传参,也支持实体传参

    引入依赖:

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.29</version>
    </dependency>
    

    自动装配RestTemplate:

    首先自动装配,不然后续会飘红报错,我是写在启动类中,因为是个小Demo所以我是写在启动类中,如果是公司项目建议写到配置类里

    @Bean
    RestTemplate restTemplate(){
        return new RestTemplate();
    }

    根据第三方接口,远程推送数据:

    1,定义将要推送的数据实体。

    2.使用RestTemplate进行数据推送,主要使用方法为postForObject(推送地址,推送数据,返回数据类型)

     @PostMapping("/restdemo2")
        @ResponseBody
        public RestBo restdemo2(@RequestBody PoundBo poundBo) {
            String url = "http://...";
            RestBo demo2ResponseEntity = restTemplate.postForObject(url,poundBo, RestBo.class);
            System.out.println(demo2ResponseEntity);
            return demo2ResponseEntity;
        }

    更多相关内容
  • 数据推送示例

    2016-04-15 18:15:15
    数据推送示例说明 (1)项目目标:日志实时展现 (2)实现过程:后台模拟生成动态日志,前端将日志实时展现在页面 (3)客户端所用技术:html5 websocket, 服务器端技术:spring websocket (spring 4.0版以上支持)...
  • Node.js实现数据推送

    2020-12-23 05:39:13
    场景:后端更新数据推送到客户端(Java部分使用Tomcat服务器)。 后端推送数据的解决方案有很多,比如轮询、Comet、WebSocket。 1. 轮询对于后端来说开发成本最低,就是按照传统的方式处理Ajax请求并返回数据,在...
  • 主要介绍了.net 通过URL推送POST数据具体实现,有需要的朋友可以参考一下
  • Java调用别人接口推送数据

    千次阅读 2021-04-19 14:35:57
    * 调用XXX市接口推送银行开户信息 * ywguid 即为 projectguid * @exception/throws [违例类型] [违例说明] * @see [类、类#方法、类#成员] */ public void pushToSZOpenAcountApplyinfo(String projectguid) { try {...

    /**
    * 调用XXX市接口推送银行开户信息
    * ywguid 即为 projectguid
    * @exception/throws [违例类型] [违例说明]
    * @see [类、类#方法、类#成员]
    */
    public void pushToSZOpenAcountApplyinfo(String projectguid) {
    try {
    YzyhEntityServiceImpl yzyhEntityServiceImpl = new YzyhEntityServiceImpl();
    System.out.println("===================引入银行印章流程得实体service" + yzyhEntityServiceImpl);
    YzyhEntity yzyhEntity = yzyhEntityServiceImpl.getYzyhEntityByProjectguid(projectguid);
    //时间格式化
    SimpleDateFormat sdf2 = new SimpleDateFormat(“yyyy-MM-dd 00:00:00”);
    if (yzyhEntity != null) {
    RestfulService restfulservice = new RestfulService();
    JSONObject jobparasjson = new JSONObject();
    JSONObject jobjparas = new JSONObject();
    jobparasjson.put(“token”, “xxx_WebSerivce_**##0601”);
    //业务标识
    jobjparas.put(“ywguid”, projectguid);
    //存款人名称
    jobjparas.put(“acctna”, StringUtil.isBlank(yzyhEntity.getAcctna()) ? “” : yzyhEntity.getAcctna());
    //证明文件种类
    if (StringUtil.isNotBlank(yzyhEntity.getIdtftp())) {
    jobjparas.put(“idtftp”, yzyhEntity.getIdtftp());
    } else {
    jobjparas.put(“idtftp”, “M”);
    }
    String areacode = “”;
    //证明文件编号
    jobjparas.put(“idtfno”, StringUtil.isBlank(yzyhEntity.getIdtfno()) ? “” : yzyhEntity.getIdtfno());
    //证明文件有效期
    jobjparas.put(“matudt”, StringUtil.isBlank(yzyhEntity.getMatudt()) ? “2099-12-30 00:00:00”
    : sdf2.format(yzyhEntity.getMatudt()));
    //地址
    // String address = yzyhEntity.get(“Ctrl66”) + “省(市/区)”;
    // address += yzyhEntity.get(“Ctrl67”) + “市(区/盟/州)”;
    // address += yzyhEntity.get(“Ctrl68”) + “县”;
    // address += yzyhEntity.get(“Ctrl69”) + “乡(镇/街道)”;
    // address += yzyhEntity.get(“Ctrl70”) + “村(路)”;
    // address += yzyhEntity.get(“Ctrl71”) + “号”;
    //id有效期
    jobjparas.put(“lwiddt”, StringUtil.isBlank(yzyhEntity.getLwiddt()) ? “2099-12-30 00:00:00”
    : sdf2.format(yzyhEntity.getLwiddt()));
    //证件编号
    jobjparas.put(“lwidno”, yzyhEntity.getLwidno());
    //基本账户开户许可核准号
    jobjparas.put(“dtittp”, “ACO1”);
    //代理人证件有效期
    jobjparas.put(“pxmudt”, StringUtil.isBlank(yzyhEntity.getPxmudt()) ? “2099-12-30 00:00:00”
    : sdf2.format(yzyhEntity.getPxmudt()));
    //业务代码
    jobjparas.put(“qxcode”, yzyhEntity.getQxcode());
    jobparasjson.put(“params”, jobjparas);
    System.out.println(“开户申请参数:” + jobparasjson);
    //调用市政上报接口
    String result = restfulservice.getTaskinfo(jobparasjson.toString());
    System.out.println("=======开户申请信息返回值:" + result);
    if (StringUtil.isBlank(result)) {
    System.out.println("=开户申请信息推送失败
    =");
    }
    JSONObject jsonresult = (JSONObject) JSONObject.parse(result);
    String custom = jsonresult.getString(“custom”);
    JSONObject jsoncustom = (JSONObject) JSONObject.parse(custom);
    String code = jsoncustom.getString(“code”);
    if (“1”.equals(code)) {
    System.out.println("==============开户申请返回结果:" + jsoncustom.getString(“text”));
    } else {
    System.out.println("==============开户申请返回结果:" + jsoncustom.getString(“text”));
    }
    }
    } catch (Exception e) {
    e.printStackTrace();
    System.out.print(e.toString());
    }
    }
    所调用的所调用的restful接口,包含http模拟请求代码的service层业务逻辑实施层代码:
    package com.xxx.xxxxx.yzyhentity.action;

    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpMethod;
    import org.apache.commons.httpclient.methods.PostMethod;
    import org.apache.commons.httpclient.methods.RequestEntity;
    import org.apache.commons.httpclient.methods.StringRequestEntity;

    import com.xxx.basic.bizlogic.sysconf.systemparameters.service.FrameConfigService9;
    /**

    • 接口请求

    • [功能详细描述]

    • @see [相关类/方法]

    • @since [产品/模块版本]
      */
      public class RestfulService
      {

      private static String SZRESTFULURL;

      private static String pushSZzwzxOpenAcountApplyinfo = “szbank/pushSZzwzxOpenAcountApplyinfo”;//开户申请推送市政务服务中心商业银行

      static {
      SZRESTFULURL = new FrameConfigService9().getFrameConfigValue(“苏州市restful接口地址”);
      }

      /**

      • 开户申请推送市政务服务中心商业银行
      • [功能详细描述]
      • @param param ,为调用别人接口的入参
      • @return
      • @exception/throws [违例类型] [违例说明]
      • @see [类、类#方法、类#成员]
        */
        public String getTaskinfo(String param) {
        String url = SZRESTFULURL + pushSZzwzxOpenAcountApplyinfo;
        System.out.println("=============开户申请信息推送地址:"+url);
        return sendPost(url, param);
        }

      /**

      • http模拟请求
        */
        public String sendPost(String url, String param) {
        try {
        String result = null;
        String loginresturl = url;
        HttpClient httpClient = new HttpClient();
        PostMethod post = new PostMethod(loginresturl);
        HttpMethod method = post;
        System.out.println("=============开户申请信息推送地址:"+url);
        if (param != null) {
        RequestEntity se = new StringRequestEntity(param, “application/json”, “UTF-8”);
        post.setRequestEntity(se);
        }
        try {
        httpClient.executeMethod(method);
        String restresponse = method.getResponseBodyAsString();
        System.out.println("===================restresponse:" + restresponse);
        result=restresponse;
        } catch (Exception e) {
        e.printStackTrace();

         } finally {
             post.releaseConnection();
             
         }
         return result;
        

        } catch (Exception e) {
        e.printStackTrace();
        return null;
        }
        }

    }

    展开全文
  • Extmail数据接口,支持推送用户数据、发送、读取邮件,需要完成extmail部署后,
  • 主要介绍了C#微信接口推送模板消息功能,结合实例形式分析了C#操作微信推送模板消息接口的具体操作步骤与相关使用技巧,需要的朋友可以参考下
  • 股票实时行情、股票实时数据是网际风www.nezip.cn全推数据接口的基础功能, 采用全推方式将股票实时行情、股票实时数据推送到客户端,减少客户端请求数据的响应时间,可以很好地支持像分析家、飞狐交易师、步步汇盈...
  • java 调用webservice接口推送数据

    千次阅读 2019-10-25 17:18:05
    需求:扫描数据库表数据, 待发送,发送失败且次数不超过3次的的数据推送到别的系统 通过对方提供的xml报文 拼接报文代码:public static String getXML(Map<String, Object> noSucDataMap) { String title ...

    需求:扫描数据库表数据, 待发送,发送失败且次数不超过3次的的数据,推送到别的系统
    通过对方提供的xml报文

    拼接报文代码:public static String getXML(Map<String, Object> noSucDataMap) {
    String title = noSucDataMap.get(“noticeName”) == null ? “” : noSucDataMap.get(“noticeName”).toString();
    Object projectName = noSucDataMap.get(“tenderName”) == null ? “” : noSucDataMap.get(“tenderName”).toString();
    Object RegionCode = noSucDataMap.get(“regionCode”) == null ? “” : noSucDataMap.get(“regionCode”).toString();
    Object NoticeContent = noSucDataMap.get(“noticeContent”) == null ? “” : noSucDataMap.get(“noticeContent”).toString();
    Object tenderType = noSucDataMap.get(“tenderType”) == null ? “” : noSucDataMap.get(“tenderType”).toString();
    Object createTime = noSucDataMap.get(“createTime”);
    Object bidOpenTime = noSucDataMap.get(“bid_open_time”);
    DateFormat df = new SimpleDateFormat(“yyyy-MM-dd’T’HH:mm:ss”);
    String createTimeStr = df.format(createTime);
    String bidOpenTimeStr = “”;
    if (bidOpenTime != null) {
    bidOpenTimeStr = df.format(bidOpenTime);
    }else {
    System.out.println(“开标时间不能为空!”);
    }

        String soapXML = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
                "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n" +
                "  <soap:Body>\n" +
                "    <InsertNoticeInfo xmlns=\"http://tempuri.org/\">\n" +
                "      <userName>test</userName>\n" +
                "      <passWord>111111</passWord>\n" +
                "      <model>\n" +
                "        <NoticeInfoId>0</NoticeInfoId>\n" +
                "        <CategoryId>0</CategoryId>\n" +
                "        <NoticeType>0</NoticeType>\n" +
                "        <Title>" + title + "</Title>\n" +
                "        <Author></Author>\n" +
                "        <Source></Source>\n" +
                "        <UploadFileExplain></UploadFileExplain>\n" +
                "        <UploadFilePath></UploadFilePath>\n" +
                "        <OwnerUnit_ContactPerson></OwnerUnit_ContactPerson>\n" +
                "        <OwnerUnit_Name></OwnerUnit_Name>\n" +
                "        <OwnerUnit_Phone></OwnerUnit_Phone>\n" +
                "        <Qualification></Qualification>\n" +
                "        <Agency_Name></Agency_Name>\n" +
                "        <Agency_ContactPerson></Agency_ContactPerson>\n" +
                "        <Agency_Phone></Agency_Phone>\n" +
                "        <Tender></Tender>\n" +
                "        <TenderType>" + tenderType + "</TenderType>\n" +
                "        <RegionCode>" + RegionCode + "</RegionCode>\n" +
                "        <ProjectName>" + projectName + "</ProjectName>\n" +
                "        <ForecastSuccessfulcandidate></ForecastSuccessfulcandidate>\n" +
                "        <TransactionAmount>0</TransactionAmount>\n" +
                "        <ProjectLeader></ProjectLeader>\n" +
                "        <NoticeContent><![CDATA[" + NoticeContent + "]]></NoticeContent>\n" +
                "        <CreateTime>" + createTimeStr + "</CreateTime>\n" +
                "        <CreateUserId></CreateUserId>\n" +
                "        <TenderDeadline>" + bidOpenTimeStr + "</TenderDeadline>\n" +
                "        <Credential></Credential>\n" +
                "        <Status>0</Status>\n" +
                "        <IsSend>true</IsSend>\n" +
                "        <Scale></Scale>\n" +
                "        <BidPerson></BidPerson>\n" +
                "        <EvaluationBidExpenses>0</EvaluationBidExpenses>\n" +
                "        <State></State>\n" +
                "        <ProjectFilingUN></ProjectFilingUN>\n" +
                "        <ProjectApprovalUN></ProjectApprovalUN>\n" +
                "        <ChapterNumber>0</ChapterNumber>\n" +
                "        <BiddingScope></BiddingScope>\n" +
                "        <BidTime>" + bidOpenTimeStr + "</BidTime>\n" +
                "        <PlanTime></PlanTime>\n" +
                "        <ProjectCondition></ProjectCondition>\n" +
                "        <BidWay></BidWay>\n" +
                "        <BidAddress></BidAddress>\n" +
                "        <PublishMedia></PublishMedia>\n" +
                "        <SectionName></SectionName>\n" +
                "        <OpenAddress></OpenAddress>\n" +
                "        <FirstPerson></FirstPerson>\n" +
                "        <FirstPrice>0</FirstPrice>\n" +
                "        <FirstProjectPerson></FirstProjectPerson>\n" +
                "        <SecondPerson></SecondPerson>\n" +
                "        <SecondPrice>0</SecondPrice>\n" +
                "        <SecondProjectPerson></SecondProjectPerson>\n" +
                "        <TenderPerson></TenderPerson>\n" +
                "        <TenderPrice>0</TenderPrice>\n" +
                "        <TenderProjectPerson></TenderProjectPerson>\n" +
                "        <CreateUsername></CreateUsername>\n" +
                "        <PriceSource></PriceSource>\n" +
                "      </model>\n" +
                "      <categoryId>" + tenderType + "</categoryId>\n" +
                "      <fBytes></fBytes>\n" +
                "      <errorString></errorString>\n" +
                "    </InsertNoticeInfo>\n" +
                "  </soap:Body>\n" +
                "</soap:Envelope>";
        return soapXML;
    }
    

    //业务逻辑
    public void selLogsNoSuc() {
    List<Map<String, Object>> noSucDataList = winBidCandidateDao.selLogsNoSuc();
    // List sendSucCode = new ArrayList();
    for (int i = 0; i < noSucDataList.size(); i++) {
    Map<String, Object> noSucDataMap = noSucDataList.get(i);

            //获取报文
            String soapXML = getXML(noSucDataMap);
            WebserviceResultBean ret = sendDataAhtbaWebService(soapXML);
            int id = Integer.parseInt(String.valueOf(noSucDataMap.get("id")));
            LogsAhszbtbxxw logsAhszbtbxxwNum = winBidCandidateDao.selLogsAhsInfoById(id);
            int sendNum = logsAhszbtbxxwNum.getSendNum() + 1;
            LogsAhszbtbxxw logsAhszbtbxxwObj = new LogsAhszbtbxxw();
            logsAhszbtbxxwObj.setId(id);
            logsAhszbtbxxwObj.setSendNum(sendNum);
    
            //创建名字表对象
            LogsAhszbtbxxwDetail logsAhszbtbxxwDetail = new LogsAhszbtbxxwDetail();
            Object noticeId = noSucDataMap.get("noticeId");
            if (noticeId != null) {
                logsAhszbtbxxwDetail.setNoticeId(noticeId.toString());
            }
            logsAhszbtbxxwDetail.setNoticeId(noSucDataMap.get("noticeId").toString());
            logsAhszbtbxxwDetail.setSendTime(new Date());
            logsAhszbtbxxwDetail.setXml(soapXML);
    
            if ("true".equals(ret.getResult())) {
                logsAhszbtbxxwObj.setStates("1");
                logsAhszbtbxxwDetail.setRemarks(ret.getRemark());
                logsAhszbtbxxwDetail.setStates("1");
            } else {
                logsAhszbtbxxwObj.setStates("2");
                logsAhszbtbxxwDetail.setStates("2");
                String remark = ret.getRemark() == null ? "" : ret.getRemark();
                logsAhszbtbxxwDetail.setRemarks(ret.getResult() + remark);
    

    // logsAhszbtbxxwDetail.setRemarks();
    }
    winBidCandidateDao.updateStates(logsAhszbtbxxwObj);
    winBidCandidateDao.insertLogsDetail(logsAhszbtbxxwDetail);
    }
    System.out.println(“扫描logs_ahszbtbxxw 待发送,发送失败且次数不超过3次的公告”);
    }

    //调用接口逻辑

    public static WebserviceResultBean sendDataAhtbaWebService(String soapXML) {
    // int responseCode=500;
    WebserviceResultBean ret = new WebserviceResultBean();
    try {
    //1:创建服务地址 接口地址
    URL url = new URL(“http://60.173.235.154:9021/ahtbaWebService.asmx”);
    //2:打开到服务地址的一个连接
    try {
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    //3.1设置发送方式:POST必须大写
    connection.setRequestMethod(“POST”);
    //3.2设置数据格式:Content-type
    connection.setRequestProperty(“content-type”, “text/xml;charset=utf-8”);
    connection.setDoInput(true);
    connection.setDoOutput(true);

                //4:组织SOAP协议数据,发送给服务端
    

    // String soapXML = getXML(“1866666666”);
    byte[] b = soapXML.getBytes(); //封装数据,数据以byte方式传输
    connection.setRequestProperty(“Content-Length”, String.valueOf(b.length));

                OutputStream os = connection.getOutputStream();
                os.write(b);
    
                //5:接收服务端的响应
                int responseCode = connection.getResponseCode();
                if (200 == responseCode) {
                    InputStream is = connection.getInputStream();
                    InputStreamReader isr = new InputStreamReader(is);
                    BufferedReader br = new BufferedReader(isr);
                    StringBuilder sb = new StringBuilder();
                    String temp = null;
    
                    while (null != (temp = br.readLine())) {
                        sb.append(temp);
                    }
                    System.out.println(sb.toString());
                    String sbXML = sb.toString();
                    ret = parseSoapMessage(sbXML);
                } else {
                    ret.setResult(String.valueOf(responseCode));
                }
    

    //
    // InputStream is1 = connection.getErrorStream();
    // InputStreamReader isr1 = new InputStreamReader(is1,“utf-8”);
    // BufferedReader in = new BufferedReader(isr1);
    // String inputLine;
    // BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
    // new FileOutputStream(“result.xml”)));// 将结果存放的位置
    // while ((inputLine = in.readLine()) != null)
    // {
    // System.out.println(inputLine);
    // bw.write(inputLine);
    // bw.newLine();
    // bw.close();
    // }
    // in.close();
    os.close();
    } catch (IOException e) {
    e.printStackTrace();
    }

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    
        return ret;
    }
    

    //解析接口返回的报文信息

    /**
     * 解析soapXML
     *
     * @param soapXML
     * @return
     */
    public static WebserviceResultBean parseSoapMessage(String soapXML) {
        WebserviceResultBean resultBean = new WebserviceResultBean();
        try {
            SOAPMessage msg = formatSoapString(soapXML);
            SOAPBody body = msg.getSOAPBody();
            Iterator<SOAPElement> iterator = body.getChildElements();
            parse(iterator, resultBean);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return resultBean;
    }
    

    /**
    * 把soap字符串格式化为SOAPMessage
    *
    * @param soapString
    * @return
    * @see [类、类#方法、类#成员]
    */
    private static SOAPMessage formatSoapString(String soapString) {
    MessageFactory msgFactory;
    try {
    msgFactory = MessageFactory.newInstance();
    SOAPMessage reqMsg = msgFactory.createMessage(new MimeHeaders(),
    new ByteArrayInputStream(soapString.getBytes(“UTF-8”)));
    reqMsg.saveChanges();
    return reqMsg;
    } catch (Exception e) {
    e.printStackTrace();
    return null;
    }
    }

    /**
    * 解析soap xml
    *
    * @param iterator
    * @param resultBean
    */
    private static void parse(Iterator iterator, WebserviceResultBean resultBean) {
    while (iterator.hasNext()) {
    SOAPElement element = iterator.next();
    if (“InsertNoticeInfoResponse”.equals(element.getNodeName())) {
    Iterator it = element.getChildElements();
    SOAPElement el = null;
    while (it.hasNext()) {
    el = it.next();
    if (“InsertNoticeInfoResult”.equals(el.getLocalName())) {
    resultBean.setResult(el.getValue());
    System.out.println("#### " + el.getLocalName() + " ==== " + el.getValue());
    } else if (“errorString”.equals(el.getLocalName())) {
    resultBean.setRemark(null != el.getValue() ? el.getValue() : “”);
    System.out.println("#### " + el.getLocalName() + " ==== " + el.getValue());
    }
    }
    } else if (null == element.getValue()
    && element.getChildElements().hasNext()) {
    parse(element.getChildElements(), resultBean);
    }
    }
    }

    这里我的做的是个定时任务
    public void selLogsNoSuc(){
    System.out.println(“扫描logs_ahszbtbxxw 待发送,发送失败且次数不超过3次的公告”);
    winBidCandidateService.selLogsNoSuc();
    }

    展开全文
  • C# 后台 使用Http协议获取GET / 推送POST 数据的通用类
  • 插件介绍 这个是ZBlog程序用的插件如果没有ZBlog程序就请看其他文章或者点我主页看其他文章注: 这个插件是需要mip模板才可以使用.如果没有mip模板的话....然后在选择MIP数据提交.更新数据.如上图顺序填写即可
  • 调用接口推送数据方式:CXF

    千次阅读 2019-06-04 16:21:20
    * @param spfContractSend 推送合同表 * @param jdbcTemplate */ private void interfaceSendTwo ( String requestStr , TPreHouseSend spfContractSend , JdbcTemplate jdbcTemplate ) { try { ...

    1.引用pom

    <!-- cxf-rt-frontend-jaxws 提供webService soap支持 -->
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxws</artifactId>
        <version>${cxf.version}</version>
    </dependency>
    <!-- cxf-rt-frontend-jaxrs 提供webService rest风格支持 -->
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxrs</artifactId>
        <version>${cxf.version}</version>
    </dependency>
    <!-- cxf-rt-rs-extension-providers, jettison提供rest服务生成json,xml支持-->
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-rs-extension-providers</artifactId>
        <version>${cxf.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http</artifactId>
        <version>${cxf.version}</version>
    </dependency>
    

    2.代码

    /**
         * 直接调用接口发送数据(2版)
         * @param requestStr  待发送数据
         * @param spfContractSend 推送合同表
         * @param jdbcTemplate
         */
        private void interfaceSendTwo(String requestStr, TPreHouseSend spfContractSend, JdbcTemplate jdbcTemplate){
            try {
                JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
                Client client = factory.createClient(Config.getString("spf.remote.webservice"));
                HTTPClientPolicy policy = new HTTPClientPolicy();
                Long connectionTimeout = null;
                if (Config.getString("spf.remote.connectionTimeout") == null || Config.getString("spf.remote.connectionTimeout").trim().equals("")) {
                    connectionTimeout = 30000L;
                } else {
                    try {
                        connectionTimeout = Long.parseLong(Config.getString("spf.remote.connectionTimeout").trim());
                        connectionTimeout = connectionTimeout.equals(0L) ? 30000L : connectionTimeout;
                    } catch (NumberFormatException e) {
                        connectionTimeout = 30000L;
                    }
                }
                policy.setConnectionTimeout(connectionTimeout);
                Long receiveTimeout = null;
                if (Config.getString("spf.remote.receiveTimeout") == null || Config.getString("spf.remote.receiveTimeout").trim().equals("")) {
                    receiveTimeout = 30000L;
                } else {
                    try {
                        receiveTimeout = Long.parseLong(Config.getString("spf.remote.receiveTimeout").trim());
                        receiveTimeout = receiveTimeout.equals(0L) ? 30000L : receiveTimeout;
                    } catch (NumberFormatException e) {
                        receiveTimeout = 30000L;
                    }
                }
                policy.setReceiveTimeout(receiveTimeout);
                policy.setAllowChunking(false);
                ((HTTPConduit) client.getConduit()).setClient(policy);
                Endpoint endpoint = client.getEndpoint();
                Binding binding = endpoint.getBinding();
                List<BindingOperationInfo> infos = new ArrayList<BindingOperationInfo>(binding.getBindingInfo().getOperations());
                for (int i = 0; i < infos.size(); i++) {
                    if (infos.get(i).getName().getLocalPart().equalsIgnoreCase(Config.getString("spf.remote.method").trim())) {
                        BindingMessageInfo input = infos.get(i).getInput();
                        List<MessagePartInfo> inputs = input.getMessageParts();
                        MessagePartInfo parammessage = inputs.get(0);
                        Object param = parammessage.getTypeClass().newInstance();
                        Field[] fields = param.getClass().getDeclaredFields();
                        if (fields != null && fields.length > 0) {
                            Field field = fields[0];
                            if (field.getType().equals(String.class)) {
                                field.setAccessible(true);
                                field.set(param, requestStr);
                                field.setAccessible(false);
                            }
                        }
                        LOGGER.debug("接口-数据发送开始");
                        LOGGER.debug(param.toString());
                        Object[] results = client.invoke(infos.get(i), param);
                        LOGGER.debug("接口-数据发送结束");
                        if (results != null && results.length > 0 && results[0] != null && !"".equals(results[0])) {
                            JSONObject result_json = JSONObject.fromObject(results[0]);
                            if (result_json.get("flag") != null && result_json.getBoolean("flag")) {
                                LOGGER.debug("接口-数据发送成功");
                            } else {
                                LOGGER.debug("接口-数据发送失败");
                                LOGGER.debug(result_json.getString("bz"));
                            }
                        } else {
                            LOGGER.debug("接口-返回内容为空");
                        }
                    }
                }
            } catch (Exception e){
                LOGGER.debug("调用接口发送数据失败", e);
                e.printStackTrace();
            }
        }
    
    展开全文
  • 保险公司对接医疗平台拉取、推送健康保险相关的就诊类数据接口样例。 一般主要包括和医院的药品,就诊信息,检验检测,费用等的数据交换接口。
  • 推送系统提供以下功能· 提供动态的添加功能(add), 提供动态的修改功能(upd), 提供动态的删除功能(deD, 提供屏蔽发送动态功能,用户可以设置不对其他好友(用户)展现某类动态, 提供屏蔽动态类型的...
  • 推送API

    千次阅读 2021-03-06 22:32:32
    推送API代码示例推送API,GitHub示例点此查看简述个推为开发者提供了如下3种消息推送方式:toSingle :简称“单推”,指向单个用户推送消息toList:简称“批量推”,指向制定的一批用户推送消息toApp:简称“群推”...
  • 当我们调用别人接口推送数据时,需要对方给一个接口地址以及接口的规范文档,规范中要包括接口的明确入参及其格式,和接口返回状态的几种情况, 调用的后台acion层业务管理层代码: /** * 调用XXX市接口推送...
  • sql server 数据库向java接口推送数据

    千次阅读 2019-09-26 15:04:50
    因为以前从未用数据库向java接口推送数据,所以为了实现这个demo我是一步一个脚印的踩坑啊!!! 此文章的作用以及应用场景:利用数据库主动推送数据,实现前端页面数据实时更新,替换ajax轮询机制。推送的依据是,...
  • Java接口定时推送数据

    千次阅读 2019-06-09 01:12:00
    接口就是URL 可以请求数据获取响应 本文使用JavaSE实现 依赖jar包 # 怕不兼容jdk1.6使用老版本jar commons-beanutils-1.6.jar commons-collections-3.2.1.jar commons-lang-2....
  • java如何给第三方接口推送加密数据

    千次阅读 2020-10-30 17:16:09
    java如何给第三方接口推送加密数据 java如何调用接口  在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适,所以,问题来了,java如何调用接口?很多项目都会封装规定好本身项目的接口...
  • springboot向指定接口推送消息

    千次阅读 2021-03-13 09:54:02
    本案例使用http的post请求实现向指定接口推送消息。 发送端这里需要注意: 二.操作案例 2.1客户端(push端) 2.1.1 工程结构 2.1.2 pom文件 <dependency> <groupId>junit</groupId> ...
  • java中如何把后台数据推送到页面上

    千次阅读 2021-03-11 10:16:32
    现在想做成从后台推送的效果:如果后台数据有变化,就把数据推送到前台,页面数据更新,否则,不变化!B/S架构中服务器向浏览器推送数据在很多场合都有需求,比如实时的监控报警、实时的调度,等等。凡是对实时性...
  • 是这样的,对方公司让我们写一个接口,然后推送给我们json 格式的数据,我是新手,一脸懵逼,求大神指教该怎么写这个接口啊,万分感谢
  • 405 表示 不允许 此方法,对于请求所标识的资源,不允许使用请求行中所指定的方法。 进一步排查发现: 我的请求方法和第三方接口方法,一个是 POST 请求,一个是GET请求,统一请求方式即可。 ...
  • 实现了别的服务器通过Http协议接口推送到自己的服务器包体(body)接收代码的实现过程,我这里是用的.net的一般处理程序做的Http接口,调用时候无需定义参数,发布后访问文件全路径就可以获取对方传过来的包体全部...
  • Kettle作为开源ETL工具,使用较多(因为不花钱)。 最近我个人在使用的时候遇到了需要将hive的数据... 因为向下游推送数据时候,需要先获取 Token密码,再拼接为API的URL 。所以,第一步需要先获取Token密码: ...
  • java调用远程接口传输数据的demo
  • 往kafka推送数据

    千次阅读 2020-12-29 02:25:48
    package ...import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;import java.util.List;import java.util....
  • 打开百度站长平台, 点开实时推送的添加新数据接口获得带token的api推送地址:    http://ping.baidu.com/sitemap?site=www.yourdomain.com&resource_name=sitemap&access_token=xxxxxxx    分享一段网友写的php...
  • OPPO推送开发接口

    2018-07-23 16:54:22
    OPPO推送开发接口,目前还在公测阶段,需OPPO提供 appkey
  • 广义系统通知,究竟是推送还是拉取呢?不同业务,不同需求,实现方式不同。 系统对1的通知: • 实时性要求高,可以推送 • 实时性要求低,可以拉取 系统对N的通知: • 登录弹窗新闻,拉取更佳,可以用一个last_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 136,785
精华内容 54,714
关键字:

数据接口推送的区别