Пример #1
0
// ファイルを読み込んで返却
func readFile(filePath string, contentType string, w http.ResponseWriter, r *http.Request) {

	ConsoleLog.Info(fmt.Sprintf("ファイル転送 %s", filePath))

	// ファイル読み込み
	data, err := ioutil.ReadFile(filePath)
	if err != nil {
		// 404返却
		errMsg := fmt.Sprintf("ファイルの読み込みに失敗しました。%v", err)
		ConsoleLog.Error(errMsg)
		w.WriteHeader(404)
		fmt.Fprintf(w, errMsg)
		return
	}

	if len(contentType) > 0 {
		// コンテントタイプ指定がある場合は設定
		w.Header().Set("Content-Type", contentType)
		ConsoleLog.Output(fmt.Sprintf("Content-Type %s", contentType))
	} else {
		// ファイル名からタイプ設定
		fileContentType := ContentType.GetContentType(filePath)
		w.Header().Set("Content-Type", fileContentType)
		ConsoleLog.Output(fmt.Sprintf("Content-Type %s", fileContentType))
	}

	// ボディ情報設定
	w.Write(data)

	ConsoleLog.Output(string(data))
}
Пример #2
0
// 出力
func Output(logType int, url string, logMsg []byte) {

	// 指定がない場合は何もしない
	if len(filePath) <= 0 {
		return
	}

	// 出力ファイル名設定
	outputFile := time.Now().Format("2006.01.02_15.04.05")
	// URLより一番後ろのパスを設定する
	assigned := regexp.MustCompile("\\/([\\w.]*)([#?]+.*)*$")
	assignedGp := assigned.FindStringSubmatch(url)
	if assignedGp != nil && len(assignedGp) >= 2 {
		outputFile += "_" + assignedGp[1]
	}
	//
	switch logType {
	case LogTypeReqestHeader:
		outputFile += "_reqhed"
	case LogTypeReqestBody:
		outputFile += "_reqbody"
	case LogTypeResponseHeader:
		outputFile += "_reshed"
	case LogTypeResponseBody:
		outputFile += "_resbody"
	}
	outputFile += ".log"

	// ファイル出力
	err := ioutil.WriteFile(path.Join(filePath, outputFile), logMsg, os.ModePerm)
	if err != nil {
		ConsoleLog.Error(fmt.Sprintf("ログファイルの出力に失敗しました。%v", err))
	}

}
Пример #3
0
// 送信
func (cl *HTTPClient) Send() bool {

	// メソッド、URL、ボディ部を設定
	req, err := http.NewRequest(cl.RequestMethod, cl.RequestUrl, bytes.NewReader(cl.RequestBody))
	if err != nil {
		ConsoleLog.Error(fmt.Sprintf("データの送信に失敗しました: %v", err))
		return false
	}

	// ヘッダ情報を設定
	for key, obj := range cl.RequestHeader {
		req.Header.Set(key, obj)
	}

	client := new(http.Client)
	resp, err := client.Do(req)
	if err != nil {
		ConsoleLog.Error(fmt.Sprintf("データの送信に失敗しました: %v", err))
		return false
	}

	// ヘッダ情報取得
	cl.ResponseHeaderBytes, _ = httputil.DumpResponse(resp, false)
	cl.ResponseHttpStatus = resp.StatusCode
	for key, _ := range resp.Header {
		cl.ResponseHeader[key] = resp.Header.Get(key)
	}

	// ボディ部取得
	bodyData := new(bytes.Buffer)
	bodyData.ReadFrom(resp.Body)
	cl.ResponseBody = bodyData.Bytes()
	defer resp.Body.Close()

	return true
}
Пример #4
0
// セットアップ
func Setup(portNo int) bool {

	// ハンドラを登録してウェブページを表示させる
	http.HandleFunc("/", httpHandler)

	// ポート設定
	portNoStr := strconv.Itoa(portNo)

	// スタート
	ConsoleLog.Info(fmt.Sprintf("Qstub起動 ポート番号: %s", portNoStr))
	err := http.ListenAndServe(":"+portNoStr, nil)
	if err != nil {
		ConsoleLog.Error(fmt.Sprintf("Qstub起動エラー: %v", err))
		return false
	}

	return true
}
Пример #5
0
// 初期設定
func Setup(outputLogPath string) bool {

	// 退避
	filePath = outputLogPath
	// 指定がない場合は何もしない
	if len(filePath) <= 0 {
		return true
	}

	// ディレクトリ作成
	err := FileManager.CreateDir(filePath)
	if err != nil {
		ConsoleLog.Error(fmt.Sprintf("ディレクトリの作成に失敗しました。%v", err))
		return false
	}

	ConsoleLog.Info(fmt.Sprintf("ログ出力先パス: %s", filePath))

	return true
}
Пример #6
0
// ファイル読込
func read() (map[string]string, bool) {

	// ファイル読み込み
	data, err := ioutil.ReadFile(filePath)
	if err != nil {
		ConsoleLog.Error(fmt.Sprintf("ContetTypeリストファイルの読み込みに失敗しました。%v", err))
		return nil, false
	}

	var list map[string]string

	// JSONに変換
	reader := strings.NewReader(string(data))
	dec := json.NewDecoder(reader)
	dec.Decode(&list)

	// ログ出力
	for key, obj := range list {
		ConsoleLog.Output(fmt.Sprintf("%s : %s", key, obj))
	}

	return list, true
}
Пример #7
0
// ファイル読込
func read() (*ConvertInfoEntity, bool) {

	// ファイル読み込み
	data, err := ioutil.ReadFile(filePath)
	if err != nil {
		ConsoleLog.Error(fmt.Sprintf("設定ファイルの読み込みに失敗しました。%v", err))
		return nil, false
	}

	var entity ConvertInfoEntity

	// JSONに変換
	reader := strings.NewReader(string(data))
	dec := json.NewDecoder(reader)
	dec.Decode(&entity)

	// ログ出力
	for _, obj := range entity.ConvertList {
		ConsoleLog.Output(fmt.Sprintf("%v", obj))
	}

	return &entity, true
}