如何从共享的play.golang.org url中检索golang代码

时间:2018-06-05 00:27:11

标签: go

我需要从play.golang.org链接中读取golang代码并保存到.go文件中。我想知道play.golang.org是否有任何公共API支持。我用Google搜索但没有提示。有没有人尝试类似的东西?

2 个答案:

答案 0 :(得分:5)

要获取共享游乐场程序的文本,请在URL中附加“.go”。例如,您可以使用https://play.golang.org/p/HmnNoBf0p1z https://play.golang.org/p/HmnNoBf0p1z.go获取该计划的文字。

您可以通过将程序文本发布到https://play.golang.org/share来上传程序。响应是共享程序的ID。该程序将stdin上传到游乐场并将上传的程序的ID打印到stdout:

package main

import (
    "io"
    "log"
    "net/http"
    "os"
)

func main() {
    req, err := http.NewRequest("POST", "https://play.golang.org/share", os.Stdin)
    if err != nil {
        log.Fatal(err)
    }
    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        log.Fatal(err)
    }
    defer resp.Body.Close()
    io.Copy(os.Stdout, resp.Body)
}  

假设上述程序位于upload.go中,则以下shell脚本将打印HmnNoBf0p1z

go run upload.go << EOF
package main

import (
    "fmt"
)

func main() {
    fmt.Println("Hello, playground")
}
EOF

如果要使用浏览器将程序下载为文件,请将查询?download=true添加到.go URL。示例:https://play.golang.org/p/HmnNoBf0p1z.go?download=true

答案 1 :(得分:2)

我知道有两种方法是由@ThunderCat描述的。另一个简单的解决方案是转到网址https://play.golang.org/p/HmnNoBf0p1z并在页面上按 // Check connection if($link === false){ die("ERROR: Could not connect. " . mysqli_connect_error()); } // Prepare an insert statement $sql = "INSERT INTO tablename (name, email) VALUES (?, ?)"; if($stmt = mysqli_prepare($link, $sql)){ // Bind variables to the prepared statement as parameters mysqli_stmt_bind_param($stmt, "ss", $name, $email); // Set parameters $name = $_REQUEST['name']; $email = $_REQUEST['email']; // Attempt to execute the prepared statement if(mysqli_stmt_execute($stmt)){ echo "Records inserted successfully."; } else{ echo "ERROR: Could not execute query: $sql. " . mysqli_error($link); } } else{ echo "ERROR: Could not prepare query: $sql. " . mysqli_error($link); } // Close statement mysqli_stmt_close($stmt); // Close connection mysqli_close($link); ?> ,它将作为Ctrl+save文件下载。