Golang http get请求中断了一些但不是所有URL

时间:2013-07-23 22:34:00

标签: go runtime-error

现在我正在使用基本的get请求模板[here] [1]从indiegogo获取url作为辅助项目的一部分。然后我使用

将字节数据转换为字符串
responseText, err:= ioutil.ReadAll(response.Body)
trueText:= string(responseText)

在需要时进行适当的错误处理

它适用于重复尝试获取和其他一些不同长度的网址(至少与之前的网址一样大,有些长度比下一个网址长)。

奇怪的是,当我试图让它中断并抛出

的运行时错误时
panic: runtime error: index out of range

并退出状态为2.我很好奇这个问题是什么。

我知道不是indiegogo对我的一分钟请求和切断我的连接感到愤怒,因为我可以连续20分钟请求没有问题。给它一点停机时间,它仍然完全中断

感谢您的帮助

编辑,看起来好像是某些页面中的html格式错误,这些页面与我运行的循环相混淆,基于设法在运行时仅在某些网址上破解的内容。谢谢你的帮助

[1]:

1 个答案:

答案 0 :(得分:0)

从网址获取并将正文转换为Go string类型时没有错误。例如,

package main

import (
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
)

func main() {
    url := "http://www.indiegogo.com/projects/culcharge-smallest-usb-charge-and-data-cable-for-iphone-and-android"
    res, err := http.Get(url)
    if err != nil {
        log.Fatal(err)
    }
    body, err := ioutil.ReadAll(res.Body)
    res.Body.Close()
    if err != nil {
        log.Fatal(err)
    }
    text := string(body)
    fmt.Println(len(body), len(text))
}

输出:

66363 66363

您没有向我们提供一小段代码,这些代码以您描述的方式进行编译,运行和失败。这让我们都在猜测。