小编top*_*kip的帖子

如何使用错误的证书进行https请求?

说我想以https://golang.org编程方式获得.目前golang.org(ssl)有一个错误的证书,*.appspot.com当我运行时,它发布给了:

package main

import (
    "log"
    "net/http"
)

func main() {
    _, err := http.Get("https://golang.org/")
    if err != nil {
        log.Fatal(err)
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到了(正如我所料)

Get https://golang.org/: certificate is valid for *.appspot.com, *.*.appspot.com, appspot.com, not golang.org
Run Code Online (Sandbox Code Playgroud)

现在,我想自己信任这个证书(想象一下我可以验证指纹等的自发证书):我如何提出请求并验证/信任证书?

我可能需要使用openssl下载证书,将其加载到我的文件中并填充tls.Configstruct!

ssl https go

110
推荐指数
5
解决办法
10万
查看次数

节点__dirname未定义

从节点手册中我看到我可以获取文件的目录__dirname,但是从REPL看来这似乎是未定义的.这是我的误解还是错误在哪里?

$ node
> console.log(__dirname)
ReferenceError: __dirname is not defined
    at repl:1:14
    at REPLServer.eval (repl.js:80:21)
    at Interface.<anonymous> (repl.js:182:12)
    at Interface.emit (events.js:67:17)
    at Interface._onLine (readline.js:162:10)
    at Interface._line (readline.js:426:8)
    at Interface._ttyWrite (readline.js:603:14)
    at ReadStream.<anonymous> (readline.js:82:12)
    at ReadStream.emit (events.js:88:20)
    at ReadStream._emitKey (tty.js:320:10)
Run Code Online (Sandbox Code Playgroud)

node.js

108
推荐指数
7
解决办法
7万
查看次数

sync.WaitGroup的示例是否正确?

这个示例用法sync.WaitGroup是否正确?它给出了预期的结果,但我不确定它wg.Add(4)的位置和位置wg.Done().一次添加四个goroutines是否有意义wg.Add()

http://play.golang.org/p/ecvYHiie0P

package main

import (
    "fmt"
    "sync"
    "time"
)

func dosomething(millisecs time.Duration, wg *sync.WaitGroup) {
    duration := millisecs * time.Millisecond
    time.Sleep(duration)
    fmt.Println("Function in background, duration:", duration)
    wg.Done()
}

func main() {
    var wg sync.WaitGroup
    wg.Add(4)
    go dosomething(200, &wg)
    go dosomething(400, &wg)
    go dosomething(150, &wg)
    go dosomething(600, &wg)

    wg.Wait()
    fmt.Println("Done")
}
Run Code Online (Sandbox Code Playgroud)

结果(如预期):

Function in background, duration: 150ms
Function in background, duration: 200ms
Function in background, duration: 400ms
Function in background, duration: 600ms …
Run Code Online (Sandbox Code Playgroud)

go goroutine

102
推荐指数
3
解决办法
8万
查看次数

AppleScript编辑器,将消息写入"结果"窗口

我正在使用Mac OS X Apple脚本编辑器和(在调试时)而不是编写大量display dialog语句,我想在下面的窗口中编写一些计算结果,称为"结果"(我在这里有德语UI) ,所以翻译是猜测).那么是否有一个写/打印语句可用于将消息放入"标准输出"窗口?我不是要求将消息放在文件系统的日志文件中,这纯粹是暂时的.

macos logging applescript

41
推荐指数
2
解决办法
5万
查看次数

找到可执行文件的路径

我使用Go为各种平台编译一个程序,并通过调用相对路径或仅通过其名称(如果它在PATH变量中)来运行它.

是否有可能找出可执行文件的位置?

说,我的程序叫做" foo(.exe)".我可以运行./foo,foo(如果它在PATH) ../../subdir/subdir/foo.

我试过使用os.Args[0],我想我应该检查程序名称是否包含除"foo"之外的其他内容.如果是,则使用filepath.Abs,如果不是,则使用(我找不到函数名称,有一个函数可以通过PATH查看程序的位置).

path go

27
推荐指数
2
解决办法
2万
查看次数

如何更改Go的日志包的日期/时间格式

使用日志包时,Go会输出类似的内容

2009/11/10 23:00:00 Hello, world
Run Code Online (Sandbox Code Playgroud)

如何将日期和时间格式更改为类似的内容dd.mm.yyy hh:mm:ss?示例(游乐场链接):

package main

import "log"

func main() {
    log.Println("Hello, playground")
}
Run Code Online (Sandbox Code Playgroud)

go

23
推荐指数
3
解决办法
8712
查看次数

如何找出哪些类型在Golang中实现哪个接口?

例:

在包中io,类型ByteReader定义了一个包装方法的接口ReadByte() (c byte, err error).

找出 标准库中哪些类型(即golang.org/pkg中列出的)满足此接口的最简单方法是什么?

这只是经验问题还是有任何其他帮助?

go

18
推荐指数
2
解决办法
2142
查看次数

我应该使用ipairs还是for循环

我已经读过,与for循环相比,ipairs的使用速度很慢,我是否应该改变编程习惯?我将在一天使用lua 5.2,目前为5.​​1.

我的阵列最多约有1000个项目.

local mytbl = { 'a','b','c','e'}
for i,v in ipairs(mytbl) do
  print(i,v)
end

for i=1,#mytbl do
  print(i,mytbl[i])
end
Run Code Online (Sandbox Code Playgroud)

lua

15
推荐指数
1
解决办法
2万
查看次数

golang:go install尝试/ usr/local而不是GOPATH

这有点是我上一个问题的后续问题:golang:在本地目录中安装软件包

我已GOPATH设置$HOME/prog/go/gopath为此路径存在三个目录:

~/prog/go/gopath$ ls
bin  pkg  src
Run Code Online (Sandbox Code Playgroud)

现在我尝试安装一个模块来访问redis数据库,要求我运行

go install
Run Code Online (Sandbox Code Playgroud)

在源目录中.但命令go install给了我

~/prog/go/gopath/src/redis (go1)$ go install
go install flag: open /usr/local/go/pkg/darwin_amd64/flag.a: permission denied
~/prog/go/gopath/src/redis (go1)$ echo $GOPATH 
<myhomedir>/prog/go/gopath
Run Code Online (Sandbox Code Playgroud)

(哪里<myhomedir>是有效路径)

问题1:为什么go install不采取$GOPATH考虑?问题2:如何说服go install使用$GOPATH

install local go

15
推荐指数
2
解决办法
1万
查看次数

golang - 显示字符,而不是ascii.喜欢'&',而不是'\ 0026'

这是我的测试代码.只需制作一个简单的http服务器.然后生成一个json数据,它的值是"&".但结果是我不想要的.结果在代码块下面.

package main

import (
    "encoding/json"
    "fmt"
    "log"
    "net/http"
)

func testFunc(w http.ResponseWriter, r *http.Request) {
    data := make(map[string]string)
    data["key"] = "&"
    bytes, err := json.Marshal(data)
    if err != nil {
        fmt.Fprintln(w, "generator json error")
    } else {
        //print console
        fmt.Println(string(bytes))
        fmt.Println("&")
        //print broswer
        fmt.Fprintln(w, string(bytes))
        fmt.Fprintln(w, "&")
    }
}

func main() {
    http.HandleFunc("/", testFunc)
    err := http.ListenAndServe(":9090", nil)
    if err != nil {
        log.Fatal("ListenAndServe", err)
    }

}
Run Code Online (Sandbox Code Playgroud)

结果:Chrome浏览器显示:

{ "关键": "\ u0026"}

&

控制台还显示:

{ "关键": "\ u0026"}

& …

escaping go

15
推荐指数
3
解决办法
1万
查看次数

标签 统计

go ×7

applescript ×1

escaping ×1

goroutine ×1

https ×1

install ×1

local ×1

logging ×1

lua ×1

macos ×1

node.js ×1

path ×1

ssl ×1