Слияние кода завершено, страница обновится автоматически
package GoTasks
import (
"os"
"os/exec"
"path/filepath"
"io/ioutil"
"net/url"
"net/http"
"strconv"
"git.oschina.net/janpoem/go-logger.git"
)
func Exist(path string) bool {
_, err := os.Stat(path)
return err == nil || os.IsExist(err)
}
func GetRuntimeDir() string {
file, _ := exec.LookPath(os.Args[0])
return filepath.Dir(file)
}
func ReadFileByte(path string) ([]byte, error) {
fi, err := os.Open(path)
if err != nil {
// panic(err)
return nil, err
} else {
defer fi.Close()
return ioutil.ReadAll(fi)
}
}
func ReadFileStr(path string) (string, error) {
raw, err := ReadFileByte(path)
return string(raw), err
}
///////////////////////////////////////////////////
// Http方法
///////////////////////////////////////////////////
func HttpGet(url string) (string, error) {
resp, err := http.Get(url)
if err != nil {
logger.Debug("HttpGet", "请求错误:", err)
return "", err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
logger.Debug("HttpGet", "IO/Read错误:", err)
return "", err
}
return string(body), err
}
func HttpPost(reqUrl string, post string) (string, error) {
resp, err := http.PostForm(reqUrl, url.Values{"data": {post}})
if err != nil {
logger.Debug("HttpPost", "请求错误:", err)
return "", err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
logger.Debug("HttpPost", "IO/Read错误:", err)
return "", err
}
return string(body), err
}
///////////////////////////////////////////////////
// Json解析部分,目前暂时用不上
///////////////////////////////////////////////////
// Value结构
type JsonValue struct {
Value interface{}
}
type JsonString struct {
Value string
}
type JsonNumber struct {
Value float64
}
//func (item *JsonValue) TypeErase()
// 尝试将JsonValue的值转换为一个字符串
func (item *JsonValue) AsString() string {
v := item.Value
switch v.(type) {
case nil :
return ""
case string :
if val, ok := v.(string); ok {
return val
}
case bool :
if v == true {
return "true"
} else {
return "false"
}
// 实际上是没有整型值
// case int :
case float64 :
if val, ok := item.Value.(float64); ok {
return strconv.FormatFloat(val, 'f', -1, 64)
}
case []interface{} :
// 数组暂时就不做特别处理了
default:
// 其它未知数据,返回空值
}
return ""
}
// 尝试将JsonValue转换为一个数字类型
func (item *JsonValue) AsNumber() float64 {
v := item.Value
switch v.(type) {
case nil :
return 0
case string :
if val, ok := v.(string); ok {
float, err := strconv.ParseFloat(val, 64)
if err == nil {
return float
}
}
case bool :
if v == true {
return 1
} else {
return 0
}
// 实际上是没有整型值
// case int :
case float64 :
if val, ok := item.Value.(float64); ok {
return val
}
case []interface{} :
// 数组暂时就不做特别处理了
default :
// 其它未知数据,返回空值
}
return 0
}
// 检查值是否为null
func (item *JsonValue) IsDefined() bool {
v := item.Value
switch v.(type) {
case nil :
return true
}
return false
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )