소스 검색

汾渭数据源-接口数据爬取

gmy 6 달 전
부모
커밋
c369589602
1개의 변경된 파일44개의 추가작업 그리고 2개의 파일을 삭제
  1. 44 2
      services/fenwei/data_processor.go

+ 44 - 2
services/fenwei/data_processor.go

@@ -7,14 +7,15 @@ import (
 	"context"
 	"encoding/json"
 	"eta/eta_data_analysis/models"
-	"eta/eta_data_analysis/services"
 	"eta/eta_data_analysis/utils"
 	"fmt"
 	"github.com/chromedp/cdproto/network"
 	"github.com/chromedp/chromedp"
 	"io"
+	"io/ioutil"
 	"log"
 	"net/http"
+	"strings"
 	"sync"
 	"time"
 )
@@ -118,7 +119,7 @@ func (p *BaseProcessor) FetchAndProcess(processor DataProcessor) error {
 	paramsLib := make(map[string]interface{})
 	paramsLib["List"] = response
 	paramsLib["TerminalCode"] = utils.TerminalCode
-	postEdbLib, err := services.PostEdbLib(paramsLib, utils.LIB_ROUTE_FENWEI_NET_DATA_HANDLE)
+	postEdbLib, err := postEdbLib(paramsLib, utils.LIB_ROUTE_FENWEI_NET_DATA_HANDLE)
 	if err != nil {
 		// 有错误就不继续执行
 		log.Printf("postEdbLib err: %v", err)
@@ -129,6 +130,47 @@ func (p *BaseProcessor) FetchAndProcess(processor DataProcessor) error {
 	return nil
 }
 
+// PostEdbLib 调用指标接口
+func postEdbLib(param map[string]interface{}, method string) (result []byte, err error) {
+	postUrl := utils.EDB_LIB_URL + method
+	postData, err := json.Marshal(param)
+	if err != nil {
+		return
+	}
+	result, err = httpPost(postUrl, string(postData), "application/json")
+	if err != nil {
+		return
+	}
+	return
+}
+
+func httpPost(url, postData string, params ...string) ([]byte, error) {
+	fmt.Println("HttpPost Url:" + url)
+	body := ioutil.NopCloser(strings.NewReader(postData))
+	client := &http.Client{}
+	req, err := http.NewRequest("POST", url, body)
+	if err != nil {
+		return nil, err
+	}
+	contentType := "application/x-www-form-urlencoded;charset=utf-8"
+	if len(params) > 0 && params[0] != "" {
+		contentType = params[0]
+	}
+	req.Header.Set("Content-Type", contentType)
+	req.Header.Set("authorization", utils.MD5(utils.APP_EDB_LIB_NAME_EN+utils.EDB_LIB_Md5_KEY))
+	resp, err := client.Do(req)
+	if err != nil {
+		fmt.Println("client.Do err:" + err.Error())
+		return nil, err
+	}
+	defer resp.Body.Close()
+	b, err := ioutil.ReadAll(resp.Body)
+	if err != nil {
+		fmt.Println("HttpPost:" + string(b))
+	}
+	return b, err
+}
+
 // resp响应参数检测 code or message 判断是否需要重新登录
 func checkResp(resp string) bool {
 	if resp == "" {