为了账号安全,请及时绑定邮箱和手机立即绑定

如何在我使用 NSData 从 iOS 发布的 Golang 服务器上读取 JSON?

如何在我使用 NSData 从 iOS 发布的 Golang 服务器上读取 JSON?

Go
暮色呼如 2022-01-17 20:07:53
我正在尝试通过将收据从 iOS 发送到我的自定义服务器来验证收据。我有我的NSMutableURLRequest并将其设置为:    let body: [String: AnyObject] = ["receipt": receipt, "prod_id": productID]    let optionalJson: NSData?    do {        optionalJson = try NSJSONSerialization.dataWithJSONObject(body, options: [])    } catch _ {        optionalJson = nil    }    guard let json = optionalJson else { return }    request.HTTPBody = json然后我将它发送到用 Go 编写的服务器,但我不知道如何读取数据。以前我只发送数据(以原始形式,而不是 JSON 结构),然后在发送之前将其转换为 base 64 编码字符串:data, _ := ioutil.ReadAll(request.Body)encodedString := base64.StdEncoding.EncodeToString(data)但是现在我将 a 链接到的 JSON 结构prod_id是 a string,以及收据数据,我假设是bytes. 如何将其提取为可读的 JSON,然后将其转换为如上所述的 base 64 编码字符串?我想我不确定 JSON 会采用什么结构。
查看完整描述

2 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

您应该创建如下结构:


type MyRequest struct {

    Receipt string `json:"receipt"`

    ProdID string `json:"prod_id"`

}

然后解码请求正文:


func handleMyRequest(rw http.ResponseWriter, req *http.Request) {

    decoder := json.NewDecoder(req.Body)

    var myReq MyRequest

    err := decoder.Decode(&myReq)

    if err != nil {

        panic()

    }

    log.Println(myReq)

}


查看完整回答
反对 回复 2022-01-17
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

那将是这样的:


type Foo strut {

  Bar string `json:"bar"`

}


// extract

data, err := ioutil.ReadAll(request.Body)

if err != nil {

  return err

}

defer request.Body.Close()


v := &Foo{}

json.Unmarshal(data, v)    

json:"bar"in将FooJSON 结构与 Go 结构绑定


查看完整回答
反对 回复 2022-01-17
  • 2 回答
  • 0 关注
  • 216 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号