亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 golang 向 raven db 服務器發出 HTTP 補丁請求?

如何使用 golang 向 raven db 服務器發出 HTTP 補丁請求?

Go
桃花長相依 2021-11-01 16:53:49
我編寫了以下代碼來向我的 raven 數據庫中的文檔 1 添加一個標題字段。url := "http://localhost:8083/databases/drone/docs/1"fmt.Println("URL:>", url)var jsonStr = []byte(`{"title":"Buy cheese and bread for breakfast."}`)req, _ := http.NewRequest("PATCH", url, bytes.NewBuffer(jsonStr))req.Header.Set("X-Custom-Header", "myvalue")req.Header.Set("Content-Type", "application/json")client := &http.Client{}resp, err := client.Do(req)if err != nil {    panic(err)}defer resp.Body.Close()body, _ := ioutil.ReadAll(resp.Body)fmt.Println("response Body:", string(body))我不明白為什么它不起作用?我收到以下響應正文,這不是我所期望的。我期待成功的回應。<html><body>    <h1>Could not figure out what to do</h1>    <p>Your request didn't match anything that Raven knows to do, sorry...</p></body>有人可以指出我在上面的代碼中缺少什么嗎?
查看完整描述

2 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

對于PATCH請求,您需要傳遞一個帶有補丁命令(json 格式)的數組來執行。

要更改title屬性,它將如下所示:

var jsonStr = []byte(`[{"Type": "Set", "Name": "title", "Value": "Buy cheese and bread for breakfast."}]`)



查看完整回答
反對 回復 2021-11-01
?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

PATCHPOST是不同的http動詞。

我認為你只需要改變這一點;

 req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))

 req, _ := http.NewRequest("PATCH", url, bytes.NewBuffer(jsonStr))

或者至少這是第一件事。根據評論,我推測您的請求正文也很糟糕。


查看完整回答
反對 回復 2021-11-01
  • 2 回答
  • 0 關注
  • 247 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號