我需要使用HTTPS URL进行Web请求。但是它总是返回(403)错误。 HTTPS URL还有其他方法吗?
答案 0 :(得分:0)
您可以尝试以下方法:
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
dataMap := map[string]interface{}{} // own map
data, err := json.Marshal(dataMap)
if err != nil {
panic(err)
}
req, err := http.NewRequest("POST", "https://newsapi.org/v2/everything", bytes.NewBuffer(data)) // replace url
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
resp, err := (&http.Client{}).Do(req) // send request
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body) // read body
if err != nil {
panic(err)
}
var jsonResp map[string]interface{} // response map
err = json.Unmarshal(body, &jsonResp)
if err != nil {
panic(err)
}
fmt.Printf("Response: %s\nStatus: %s\n", jsonResp, resp.Status)
}
输出为:
响应:map [状态:错误代码:apiKey缺少消息:您的API密钥丢失。将此内容附加到带有apiKey参数的URL上,或使用x-api-key HTTPheader。]
状态:401未经授权
仍然存在错误,但这是由服务器引起的,因为没有API密钥。