如何获取具有媒体子类型的http响应的MIME类型?

时间:2015-10-08 06:23:00

标签: go get mime-types

我想存储从GET请求获得的响应的MIME类型。我使用了DetectContentType函数,但它为js和css资源提供了text/plain; charset=utf-8。为了达到这个目的,我必须根据MIME类型区分每个网址和我的文件类型。

response, error := http.Get(url) 
if error == nil { 
    contentType := response.Header.Get("Content-Type") 
    // ... 
}

只给我内容类型。

1 个答案:

答案 0 :(得分:4)

听起来你可以使用Go的mime包。 mime包中的TypeByExtension方法可能适合您的需要。 https://golang.org/pkg/mime/#TypeByExtension

我相信这会使用主机系统的mime类型表。通过此方法确定的mime类型可能与远程服务器报告的mime类型不同。

import "mime"

func DetermineMimeType (fileExtension string) string {
    return mime.TypeByExtension(fileExtension)
}

请务必传入包含句点的完整文件扩展名,例如“.js”或“.css”。只是为了涵盖所有情况,如果你无法确定文件的扩展名或者这个方法没有返回mime类型,那么可能默认为远程服务器报告的mime类型。