java接收go发出的post请求

该博客展示了如何使用Java和Go进行端口信息的交互。Java端通过`@RequestBody`接收Go发送的JSON数据,解析并存储到InfluxDB。Go端则读取配置文件,检查端口使用情况,获取相关信息,并构造JSON请求发送到Java接口。整个过程涉及网络通信、JSON序列化和数据库操作。
摘要由CSDN通过智能技术生成

 java接收端

@RequestMapping("/inserPortInfo")
@ResponseBody
public void testInsert(@RequestBody String temp) {
    JSONObject obj=JSON.parseObject(temp);
    Map<String, String> tagsMap = new HashMap<>();
    Map<String, Object> fieldsMap = new HashMap<>();
    Iterator it =obj.getJSONObject("fields").entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry<String, Object> entry = (Map.Entry<String, Object>) it.next();
        fieldsMap.put(entry.getKey(), entry.getValue());
    }
    Iterator it2 =obj.getJSONObject("tag").entrySet().iterator();
    while (it2.hasNext()) {
        Map.Entry<String, Object> entry2 = (Map.Entry<String, Object>) it2.next();
        tagsMap.put(entry2.getKey(), (String) entry2.getValue());
    }
    System.out.println("influxDB start time :" + System.currentTimeMillis());
    influxDBConnect.insert("usage", tagsMap, fieldsMap);
}

 go请求端

func portOrPid() {
   config := common.InitConfig("./config/test.txt")
   port := config["ports"]
   arr := strings.Split(port, ",")
   for _, item := range arr {
      if item !=""{
         port, _ := strconv.Atoi(item)
         if common.PortInUse(port) == -1 {
            println("根据端口号未获取进程信息,端口号或进程号:%d", common.PortInUse(port))
         } else {
            tags, fields :=common.GetPidInfo(int32(common.PortInUse(port)))
            tags ["ipv4"] = GetOutboundIP()
            tags ["port"] = common.GetPortInfo(item).Port
            tags ["bz"] = common.GetPortInfo(item).Bz
            client := &http.Client{Timeout: 10 * time.Second}
            tempJson := make(map[string]interface{})
            tempJson["tag"]=tags
            tempJson["fields"]=fields
            tempJson["dbName"]="test_dbname"
            jsonStr, _ :=json.Marshal(tempJson)
            resp, _ := client.Post("http://10.102.110.93:8080/inserPortInfo", "application/json", bytes.NewBuffer(jsonStr))
            resp.Body.Close()
            fmt.Println("插入成功!")
         }
      }
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值