当前位置: 首页 > 知识库问答 >
问题:

如何修复超文本传输协议:“恐慌服务127.0.0.1:54063: 403禁止:禁止”

益兴生
2023-03-14

可以看到的错误是客户端返回的403禁止。GetKeyStats函数。

基于源代码,无需进行身份验证。源代码:https://github.com/timpalpant/go-iex“您感到恐慌的原因是直接在此函数中引发恐慌。

package main

import (
  "fmt"
  "github.com/timpalpant/go-iex"
  "html/template"
  "net/http"
)

func process(w http.ResponseWriter, r *http.Request) {

  client := iex.NewClient(&http.Client{})
  symbols := []string{"AAPL", "SPY"}
  stat, err := client.GetKeyStats(symb)

  if err != nil {
    panic(err)
  }
  var s []string

  for _, symb := range symbols {

    s = append(s, fmt.Sprintf("DividendYield: %s", stat.DividendYield))
  }

  t, _ := template.ParseFiles("Dividends.html")
  t.Execute(w, s)

}

func main() {

  server := http.Server{
    Addr: "127.0.0.1:8080",
  }
  http.HandleFunc("/process", process)
  server.ListenAndServe()

}

可以看到的错误是客户端返回的403禁止。GetKeyStats函数。您是否需要以某种方式对此客户端进行身份验证?无论哪种方式,作为一种语言,这似乎都不是一个相关的问题。"

2020/01/27 03:34:59 http:恐慌服务127.0。0.1:54063:403禁止:禁止

. goroutine 19[运行]: net/超文本传输协议。(*conn)。serve.func1(0xc000162820) /usr/local/opt/go/libexec/src/net/超文本传输协议/server.go:17670x139恐慌(0x1442140,0xc0002Defb0) /usr/local/opt/go/libexec/src/runtime/panic.go:6790x1b2main.process(0x158d1e0,0xc0001ba000,0xc0001a8000) /Users/ed/Documents/Coding/Golang/src/web/web.go:180x373 net/http.HandlerFunc。ServeHTTP(0x150b0d0,0x158d1e0,0xc0001ba000,0xc0001a8000) /usr/local/opt/go/libexec/src/net/超文本传输协议/server.go:20070x44 net/超文本传输协议。(*ServeMux)。ServeHTTP(0x18d3180,0x158d1e0,0xc0001ba000,0xc0001a8000) /usr/local/opt/go/libexec/src/net/超文本传输协议/server.go:23870x1bd net/http.server处理程序。ServeHTTP(0xc0001640e0,0x158d1e0,0xc0001ba000,0xc0001a8000) /usr/local/opt/go/libexec/src/net/超文本传输协议/server.go:28020xa4 net/超文本传输协议0x875由net/超文本传输协议创建)*服务器)。服务 /usr/local/opt/go/libexec/src/net/超文本传输协议/server.go:29280x384 2020/01/27 03:34:59超文本传输协议:恐慌服务127.0.0.1:54064: 403禁止:禁止goroutine 20[运行]: net/超文本传输协议。--12/>1(0xc0001628c0) /usr/local/opt/go/libexec/src/net/超文本传输协议/server.go:17670x139恐慌(0x1442140,0xc0003Cab90) /usr/local/opt/go/libexec/src/runtime/panic.go:6790x1b2main.process(0x158d1e0,0xc00022d420,0xc0001a6000) /Users/ed/Documents/Coding/Golang/src/web/web.go:180x373 net/http.HandlerFunc。ServeHTTP(0x150b0d0,0x158d1e0,0xc00022d420,0xc0001a6000) /usr/local/opt/go/libexec/src/net/超文本传输协议/server.go:20070x44 net/超文本传输协议。(*ServeMux)。ServeHTTP(0x18d3180,0x158d1e0,0xc00022d420,0xc0001a6000) /usr/local/opt/go/libexec/src/net/超文本传输协议/server.go:23870x1bd net/http.server处理程序。ServeHTTP(0xc0001640e0,0x158d1e0,0xc00022d420,0xc0001a6000) /usr/local/opt/go/libexec/src/net/超文本传输协议/server. go: 2802 0xa4 net/超文本传输协议协议。*服务器)。服务 /usr/local/opt/go/libexec/src/net/超文本传输协议/server. go: 2928 0x384 2020/01/27 03:34:59超文本传输协议:恐慌服务127.0.0.1:54066:403禁止:禁止goroutine 47[运行]:

共有2个答案

顾亦
2023-03-14

自上次更新Go库以来,API已发生更改。因此,它似乎用于接受未经验证的API请求,但现在,根据文档,您需要一个令牌:https://iexcloud.io/docs/api/

IEX云使用您帐户的API令牌验证您的API请求。要使用任何IEX云API,必须在每个请求中传递API令牌。如果在发出API请求时未包含API令牌,或者使用了不正确或已禁用的API令牌,IEX Cloud将返回一个错误。

您必须使用文档中建议的最新Go库

https://github.com/goinvest/iexcloud

麹渊
2023-03-14

你提到的确实是timpalpant/go-iex第33期,在Go语言/go第36883期之后

尝试首先运行客户机测试。go#TestGetKeyStats()

我的问题是看看你是否能告诉我根本原因,是我的代码还是API源

这里是源代码,而不是API:Go HTTP客户端的goroutine中的恐慌会生成错误消息

 类似资料:
  • 我试图禁用我的AngularJS应用程序中的缓存,但它无法使用以下代码: 当我使用

  • httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。 通常,httpd不应该被直接调用,而应该在类Unix系统中由apachectl调用,在Windows NT/2000/XP/2003中作为服务运行和在Windows 95/98/ME中作为控制台程序运行. 语法 httpd [ -d serverroot ]

  • 我想测试一个连接到Github api的应用程序,下载一些记录并对其进行处理。我想要一个模拟对象,我做了如下操作: 看起来不错吧?我应该在thenReturn中输入什么(它需要HttpResponse,但我不知道如何创建)。谢谢你的回答。如果你有更好的想法,我将不胜感激。 更新:字符串响应是一个示例响应

  • 我正在从我的角UI调用Spring引导REST服务。只要Spring Boot Rest服务作为Spring Boot应用程序执行,它就运行良好。但是一旦我将其转换为WAR文件并部署在Jboss 6.2.4服务器上,我就会得到404。我看到来自UI的REST服务调用成功,但请求JSON没有通过。在请求JSON上,我正在传递2个字符串和一个上传的excel文件。 这是我的angular UI htt

  • 我正在使用MEAN stack构建的SPA中实现fb身份验证。虽然我已经使用facebook token passport策略成功实现了fb身份验证,但我在保护APIendpoint方面遇到了问题。因为为此,我需要在$http服务中同时传递经过身份验证的用户对象和访问令牌,并且我已经尝试将访问令牌作为用户对象的属性和头属性传递,但仍然是401(未经授权的错误)。下面是我的代码片段。 护照留档显示“

  • 在一段时间内,通过HTTPS与我们的服务器的通信工作得很好。 上周提供商更改了一些东西,从现在开始,我总是得到403错误。 我使用最新的OpenSSL DLLs V0.9.8 我已将UserAgent更改为“Mozilla/5.0(Windows NT 10.0)” SSL方法为“SSLVSSLV23” SSL模式为“SSLMClient” 什么都帮不上忙。:( 这是我得到的日志: