GoLang学习(二)

项目本身是Java的,用GoLang和Python写项目的测试代码,用前者主要是学习。在三种语言之间切换,错误率明显上升了。:)

同样的功能GoLang比Python代码更简洁一些。下面分析今天出的一个低级错误。

用GoLang模拟一个表单提交,服务器返回的是Json 格式,功能非常简单,代码也不多,没什么好提的。但是在将服务器端返回的字符串转换成自定义结构的时候发现无法赋值。突然一下想起来了, GoLang中需要[导出](也就是可以被其它package访问类似Java中的public)属性或者方法什么的第一个字符要大写,修改了马上OK。

package main
import(
        "fmt"
        "net/http"
        "net/url"
        "io/ioutil"
        "encoding/json"
      )
 
 
type Result struct{
    FailCount int
    SuccessCount int
    FailList []string
    Message string
    Status string
}
 
func testQueryPost(){
    client := &http.Client{}
    form :=make(url.Values)
    form.Add("a","1")
    form.Add("b","1")
    response,err :=client.PostForm("http://localhost:8080/xxxxxx",form)
    buf,err :=ioutil.ReadAll(response.Body)
    //此处略去错误检查。。
    var result Result
    err =json.Unmarshal(buf,&result) 
    if err==nil{
        fmt.Printf(" response body : %#v\n",result)
    }else{
        fmt.Printf(" response Error : %s\n",err.Error())
    }
}
 
func main(){
   testQueryPost()    
}
分享到: 更多