小编Pau*_*nes的帖子

从 http 请求中解码 json 时出现 EOF 错误

我不断收到 EOF 错误,但不知道为什么。我使用 print 语句进行检查,方法是 POST,内容类型是 application/json,这是预期的。我期待的 json 看起来像这样 { "path": "example/path/to" } 代码运行成功,但打印出一个错误,这也很奇怪,因为出现错误时它应该在完成函数的其余部分之前返回

func create(w http.ResponseWriter, r *http.Request) {   
     dump, er := httputil.DumpRequest(r, true)
     if er != nil {
         http.Error(w, fmt.Sprint(er), http.StatusInternalServerError)
         return
     }
     fmt.Println(string(dump)) 

     var req map[string]string
     decoder := json.NewDecoder(r.Body)
     err := decoder.Decode(&req)
     if err != nil {
         fmt.Println(err)
         return
     }
     fmt.Println(req["path"])
 
     err = os.MkdirAll("/"+req["path"], os.ModePerm)
     if err != nil {
         fmt.Println(err)
         return
     }
}
Run Code Online (Sandbox Code Playgroud)

它只打印出“Bob”和“EOF”,我已经做了一些广泛的谷歌搜索,但我真的找不到这个问题在其他地方的答案,我也尝试过使用 r.ParseForm 并使用 r.FormValue 和 PostFormValue,但是当我这样做的字符串是空的。

另外,如果它有用,这里是值的前端代码

fetch(url, {
  method: "POST",
  headers: { …
Run Code Online (Sandbox Code Playgroud)

post json http go eof

5
推荐指数
1
解决办法
8481
查看次数

我的 Haskell 程序使用这么多内存是否有原因?

给定一个由空格分隔的单词输入文件,文件大小约为 64mb:

main :: IO ()
main = do
    content <- getData "data_1.txt" -- opens file, reads contents, closes handle,returns
    let tokens = words content
        mappedData = map (\token -> (token, 1)) tokens
        keySet = Set.fromList tokens
        intermediateData = map (\key -> (key, map snd (filter (\kv -> fst kv == key) mappedData))) (Set.toList keySet)
        final = map (\pair -> (fst pair, foldr (+) 0 (snd pair))) intermediateData
    print final
Run Code Online (Sandbox Code Playgroud)

content = ""
with open("data_1.txt", "r") as file:
    content …
Run Code Online (Sandbox Code Playgroud)

memory performance haskell functional-programming haskell-stack

1
推荐指数
1
解决办法
434
查看次数