对接httppost.httpurlconnectionpost的json数据,定时写入txt文档(代码片段)

阿啄debugIT 阿啄debugIT     2022-12-05     780

关键词:

1、需要导入的类

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

2、对接HttpPost.httpUrlConnectionPost接口

@Component
public class MyTask

  private static final Logger log = LoggerFactory.getLogger(MyTask.class);

  private String endTime = "";

  private String startTime = "";

  private String scenicIds = "2801,2802,2803,2804,2805,2806,2807,2808,2809,2810";

  private String ip = "119.136.103.132";

  private int port = 2363;

  private String username = "zxcvb";

  private String password = "ASDFGH@zxcv";

  private String outPath = "liunx_output/";

  private String serverOutPath = "/upload/";

  @Scheduled(cron="0 7 * * * ?")
  public void task()
  
    
  

  private void writeToTxt(List<String> stringList, String outPath, String dateStr) 
    
  

  private List<String> jsonToStrings(String resultStr)
  
    

task()定时任务方法

  @Scheduled(cron="0 7 * * * ?")
  public void task()
  
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(new Date());
    calendar.add(5, -1);
    this.startTime = simpleDateFormat.format(calendar.getTime());
    this.endTime = simpleDateFormat.format(calendar.getTime());
    StringBuilder stringBuilder = new StringBuilder();
    stringBuilder.append(this.outPath).append("jw_zqwert_qianxi_");
    stringBuilder.append(this.endTime).append(".txt");

    log.info("开始获取接口数据..............");
    String jsonAll = HttpPost.httpUrlConnectionPost(this.startTime, this.endTime, this.scenicIds);
    log.info("开始解析接口数据..............");
    List stringList = jsonToStrings(jsonAll);
    log.info("将数据写入到本地目录.................");
    writeToTxt(stringList, this.outPath, this.endTime);

    log.info(new StringBuilder().append("任务结束...............").append(new Date()).toString());
  

根据接口约定的id,及获取数据的开始时间及结束时间,获取到json数据,并通过jsonToStrings()转化为list结构的数据

jsonToStrings()

  private List<String> jsonToStrings(String resultStr)
  
    JSONArray jsonArray = JSON.parseArray(resultStr);
    ArrayList arrayList = new ArrayList();
    if (jsonArray.size() > 0) 
      for (int i = 0; i < jsonArray.size(); i++) 
        String jsonArrayString = jsonArray.getString(i);
        JSONObject jsonObject = JSONObject.parseObject(jsonArrayString);
        String dimensionValue = jsonObject.getString("dimensionValue");
        if ("武汉".equals(dimensionValue)) 
          arrayList.add(new StringBuilder().append(jsonObject.getString("day")).append(",")
            .append(jsonObject
            .getString("id"))
            .append(",").append(jsonObject.getString("count")).toString());
        
      
    
    return arrayList;
  

再把转化为list结构的数据,通过BufferedWriter一行行,写入到txt文件中

writeToTxt(List<String> s, String o, String d)

 private void writeToTxt(List<String> stringList, String outPath, String dateStr) 
    StringBuilder stringBuilder = new StringBuilder();

    stringBuilder.append(outPath);
    File file2 = new File(stringBuilder.toString());

    if (!file2.exists()) 
      file2.mkdirs();
    
    String filePath = "jw_wuhan_qianxi_";
    stringBuilder.append(filePath).append(dateStr).append(".txt");
    String writeFile = stringBuilder.toString();
    File file = new File(writeFile);

    if (!file.isFile()) 
      try 
        file.createNewFile();
       catch (IOException e) 
        e.printStackTrace();
      
    
    BufferedWriter writer = null;
    try 
      writer = new BufferedWriter(new FileWriter(writeFile));
      for (String l : stringList)
        writer.write(new StringBuilder().append(l).append("\\r\\n").toString());
    
    catch (IOException e) 
      e.printStackTrace();
     finally 
      if (writer != null)
        try 
          writer.close();
         catch (IOException e) 
          e.printStackTrace();
        
    
  

 

三方对接「心得」与「体会」

...候就细细体会吧;那年,我双手插兜,不知道什么叫三方对接;直到入职了一家金融公司后,承接了一个需求:跟银行对接数据流水;从此就一发不可收拾,踏上了漫漫对接路,之后跟三方对接的活,都被我全部承包了;直到我... 查看详情

数据对接-etl之streamset学习之旅一(代码片段)

...1.RPM安装2.Docker镜像安装存储应用引用链接学习系列数据对接-ETL之StreamSet学习之旅一数据对接-ETL之StreamSet学习之旅二数据对接-ETL之StreamSet学习之旅三数据对接-ETL之StreamSet学习之旅四数据对接-ETL之StreamSet学习之旅五数据对接-ETL... 查看详情

快递查询接口种类及对接方法

  目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是是直接和快递公... 查看详情

国际快递查询轨迹api接口如何对接?

像UPS,联邦快递这些API接口怎么对接参考技术A需要用一个系统对接另一个系统,需要技术人员对接接口,看是否需要改变字段或者开发语言等等,同时对接完成后需要两边的系统测试数据传输的稳定性,这边建议使用快递鸟这... 查看详情

模型导出与部署tensorflowclient对接模型服务(代码片段)

TensorFlowClient对接模型服务1.TensorflowClient代码编写对接Web1.1Client端代码2.步骤过程应用TensorFlowServingClient完成对接模型服务编写以及运行1.TensorflowClient代码编写对接Webmain.py当中调用#获取用户上传图片image=request.files.get('image... 查看详情

cg28181对接视频流

...视频流以备后用,同时也希望能帮助到正着手开发GB28181对接视频的同学,这块的资料实在不多。今天讲的内容不涉及到平台对接,平台对接下次有时间再讲,平台对接相对更麻烦点。通过GB28181获取摄像机视频流,首先需要摄像... 查看详情

公司是一个电商平台,需要申请快递物流单号查询的接口怎么对接呢?

...是一个电商平台,需要申请快递物流单号查询的接口怎么对接呢?主要是自身情况,是需要指定一家的物流公司,还说说需要很多家物流公司。如果一家的话直接找到物流公司对接就可以了。如果需要多家物流快递公司接口的话... 查看详情

前端对接微信公众号网页开发流程,授权对接(代码片段)

前面讲到前端对接微信公众号网页开发流程,前期配置,本篇文章主要详细介绍关于公众号的授权对接。一、引入微信js-sdk在需要调用JS接口的页面引入如下JS文件http://res.wx.qq.com/open/js/jweixin-1.6.0.js如需进一步提升服务稳... 查看详情

在 Android 中,对接状态是啥意思

】在Android中,对接状态是啥意思【英文标题】:InAndroidwhatyoumeanbydockingstate在Android中,对接状态是什么意思【发布时间】:2013-04-2206:19:57【问题描述】:Intent中有一个常量ACTION_DOCK_EVENT添加于APIlevel5广播动作:设备物理对接状态... 查看详情

常用电子面单接口对接技术文档

...开发的电子面单服务,商家使用必须快递公司上门做系统对接,使用一家快递则需要对接一次。2.菜鸟电子面单接口:可一次对接15家快递公司,无需和每一家快递公司做对接。支持快递有四通一达、EMS、宅急送、德邦、优速、... 查看详情

freeswitch对接其它sip设备

这几天用到freeswitch对接其它设备方面的知识,这里整理下,也方便我以后查阅。操作系统:debian8.5_x64freeswitch版本:1.6.8一、freeswitch作为被叫设备freeswitch作为被叫设备和其它设备对接的情况比较简单,可以直接通过5080端口呼入... 查看详情

独立游戏如何对接steamsdk

独立开发者在对接STEAMSDK之前 首先得先登上青睐之光,也就是我们俗称的“绿光”一般要先对接G胖家的SDK,然后提交版本,最后等待审核。。。我本身是unity开发,对C++也是糊里糊涂..所以这里主要围绕unity说下我对接SDK的一... 查看详情

淘宝对接

最近工作的内容是与淘宝进行对接。第一次接触淘宝对接的工作。淘宝也很不赖有比较专业详尽的文档。地址是:http://open.taobao.com/docs/doc_index.htm。网上也有一大堆参考资料。但感觉有点散。在这里我做一个合适我自己的归纳总... 查看详情

C#的对接库[关闭]

】C#的对接库[关闭]【英文标题】:DockinglibraryforC#[closed]【发布时间】:2013-04-1714:09:45【问题描述】:我正在寻找在C#应用程序中使用的对接库。它可以为WPF设计,但我更喜欢WinForms应用程序。当然,它应该提供标准的对接机会。... 查看详情

电商适用电子面单接口对接案例

...和快递鸟提供快递公司是一家家合作,要接口文档,逐一对接菜鸟和快递鸟是电子面单接口集成方,能打印多家快递电子面单,菜鸟目前支持15家,快递鸟支持20家,基本上都是常用的快递,以下接口对接以快递鸟接口为例 ... 查看详情

如何验证手机是不是已对接?

】如何验证手机是不是已对接?【英文标题】:Howtoverifyifthephoneisdocked?如何验证手机是否已对接?【发布时间】:2011-02-0809:26:16【问题描述】:我正在寻找一种方法来验证手机是否在Android1.6(API4)上对接(车载底座、桌面底座)... 查看详情

rancher与openldap对接

...sp;  Rancher官网文档中,关于访问控制,有与OpenLDAP对接的介绍,但只是简要一笔带过,Rancher与OpenLDAP对接页面中的几个参数如何填写,并没有详细的说明。   本文通过OpenLDAPforWindows软件,在WindowsXP上搭建了一个... 查看详情

对接datagridview底部

】对接datagridview底部【英文标题】:Dockingdatagridviewbottom【发布时间】:2013-10-2511:58:18【问题描述】:我想让datagridview停靠在底部。但是当我按下键时,什么也没有发生。这是我的代码:PrivateSubMakbuzTDataGridView_KeyDown(senderAsObject,eAs... 查看详情