GVKun编程网logo

错误的MIME“ Content-Type”的http.FileServer响应(错误 wmi)

27

本文的目的是介绍错误的MIME“Content-Type”的http.FileServer响应的详细情况,特别关注错误wmi的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面

本文的目的是介绍错误的MIME“ Content-Type”的http.FileServer响应的详细情况,特别关注错误 wmi的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解错误的MIME“ Content-Type”的http.FileServer响应的机会,同时也不会遗漏关于意思?、aiohttp.client_exceptions.ContentTypeError: 0:json(content_type=‘??‘)、Ajax应用常见的HTTP ContentType设置的知识。

本文目录一览:

错误的MIME“ Content-Type”的http.FileServer响应(错误 wmi)

错误的MIME“ Content-Type”的http.FileServer响应(错误 wmi)

我正在使用http.FileServer来提供mp3文件的目录,该模板随后src在javascript中。但是,该响应使用Content-Type
text/html代替audio/mpeg。我如何设置FileServer响应的mime类型,我看到了这个问题在golang HTTPFileServer的Content-Type标头上设置了’charset’属性,但是我仍然不确定如何覆盖mime类型。

我的代码如下所示:

fs := http.FileServer(http.Dir(dir))http.Handle("/media", http.StripPrefix("/media", fs))http.HandleFunc("/", p.playlistHandler)http.ListenAndServe(":5177", nil)

我得到的错误是:

HTTP "Content-Type" of "text/html" is not supported. Load of media resource http://localhost:5177/media/sample1.mp3 failed.

答案1

小编典典

这不是内容类型的问题。fs请求mp3时不会调用您的处理程序。您需要像这样/在图案/media和带状前缀中添加一个

http.Handle("/media/", http.StripPrefix("/media/", fs))

原因是在net /
http.ServeMux的文档中

模式命名固定的,有根的路径(例如“ /favicon.ico”)或有根的子树(例如“ / images
/”)(请注意结尾的斜杠)。较长的模式优先于较短的模式,因此,如果同时为“ / images /”和“ / images / thumbnails
/”注册了处理程序,则将为以“ / images / thumbnails /”开头的路径调用后一个处理程序将在“ / images
/”子树中接收对任何其他路径的请求。

只需/media为路径注册处理程序,但在其后加上斜杠,它将视为a rooted subtree,并将在该树下处理请求。

<meta charset =“ utf-8”>与<meta http-equiv =“ Content-Type”>

为了为 HTML5 Doctype 定义字符集,我应该使用哪种表示法?

  1. 短:

    <meta charset="utf-8" />
    
  2. 长:

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    

意思?" alt="意思?">

意思?">意思?

META,网页Html语言里Head区重要标签之一

HTTP-EQUIV类似于HTTP的头部协议,它回应给浏览器一些有

用的信息,以帮助正确和精确地显示网页内容。常用的HTTP-

EQUIV类型有: 

1、Content-Type和Content-Language (显示字符集的设定)

说明:设定页面使用的字符集,用以说明主页制作所使用的

文字已经语言,浏览器会根据此来调用相应的字符集显示page

内容。 

<Meta http-equiv="Content-Type" Content="text/html; Charset=gb2312">

该META标签定义了HTML页面所使用的字符集为GB2132,就是

国标汉字码。如果将其中的“charset=GB2312”替换成

“BIG5”,则该页面所用的字符集就是繁体中文Big5码。当你

浏览一些国外的站点时,IE浏览器会提示你要正确显示该页面

需要下载xx语支持。这个功能就是通过读取HTML页面META标签

的Content-Type属性而得知需要使用哪种字符集显示该页面

的。如果系统里没有装相应的字符集,则IE就提示下载。其他

的语言也对应不同的charset,比如日文的字符集是“iso-

2022-jp ”,韩文的是“ks_c_5601”。
      
Content-Type的Content还可以是:text/xml等文档类型;
Charset选项:ISO-8859-1(英文)、BIG5、UTF-8、

SHIFT-Jis、Euc、Koi8-2、us-ascii, x-mac-roman, iso-

8859-2, x-mac-ce, iso-2022-jp, x-sjis, x-euc-jp,euc-

kr, iso-2022-kr, gb2312, gb_2312-80, x-euc-tw, x-

cns11643-1,x-cns11643-2等字符集;Content-Language的

Content还可以是:EN、FR等语言代码。

aiohttp.client_exceptions.ContentTypeError: 0:json(content_type=‘??‘)

aiohttp.client_exceptions.ContentTypeError: 0:json(content_type=‘??‘)

aiohttp.client_exceptions

  • 问题
  • 解决

问题

   # 获取异步requests
    async with aiohttp.ClientSession() as session:
        async with session.post(url, headers=headers, data=data) as resp:
            # 写入数据
            csvWriter.writerow(await resp.json())  # 读取内容是异步的,需要挂起
            print('库编号', data['p'], '爬取完毕!')
from aioHTTP_Requests import requests
 
async def req(URL):
    headers = {"Accept": 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
        "Accept-Language": "zh-CN,zh;q=0.9", "Host": "xin.baidu.com",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/72.0.3626.121 Safari/537.36", }
    resp = await requests.get(URL,headers=headers,timeout=10,verify_ssl=False)
    resp_text = await resp.json(encoding='utf-8')
    return resp_text
 
if __name__ == "__main__":
    print("HELLO WORLD")
    URL = "https://xin.baidu.com/detail/basicAjax?pid=xlTM-TogKuTw9PzC-u6VwZxUBuZ5J7WMewmd"
    loop = asyncio.get_event_loop()
    loop.run_until_complete(req(URL))

csvWriter.writerow(await resp.json())

运行上面的程序会报错

在这里插入图片描述

解决

ContentTypeError:类型错误

resp.json():传入编码文本类型参数即可:

resp.json(content_type='text/html',encoding='utf-8')

参考:Link

衷心感谢!

Ajax应用常见的HTTP ContentType设置

Ajax应用常见的HTTP ContentType设置

原文出处不详,anyway,感谢一下作者先。

ajax开发中,常遇到下面的几种情况:

1 服务端需要返回一段普通文本给客户端
2 服务端需要返回一段HTML代码给客户端
3 服务端需要返回一段XML代码给客户端
4 服务端需要返回一段javascript代码给客户端
5 服务端需要返回一段json串给客户端

对于每一种返回类型,规范的做法是要在服务端指定 response的contentType。
(当然 不指定绝大多数情况下也没什么问题 尤其是返回"非xml"的时候)

代码
普通文本 : text/plain
HTML代码 : text/html
XML代码 : text/xml
以上三个可以说是毫无争议的,但是另外两种情况 就要注意一下了.
javascript 的 contentType 按最标准的写法 应该是 application/javascript.
而常用的 text/javascript 已经被 rfc定义为废弃的.
但是,在这里暂时不建议使用 application/javascript
因为很多老旧浏览器并不支持 application/javascript
而所有浏览器都支持 text/javascript.
在标准和广泛的兼容性之间 还是暂且选择后者吧.


json 的 contentType 常见写法有: text/json & text/javascript .
但是 这个 text/json 其实是根本不存在的,而 text/javascript 在有些时候客户端处理起来会有歧义.
对于json的contentType,rfc里定义的标准写法是 :application/json.

在这里毫无疑问 我们应该选择标准写法的 application/json

最后,附一下ContentType清单:

常用的:

[java] view plain copy
  1. text/plain
  2. text/HTML
  3. text/xml
  4. test/javascript
  5. application/json
  6. image/GIF
  7. image/JPEG

清单:

copy

我们今天的关于错误的MIME“ Content-Type”的http.FileServer响应错误 wmi的分享就到这里,谢谢您的阅读,如果想了解更多关于意思?、aiohttp.client_exceptions.ContentTypeError: 0:json(content_type=‘??‘)、Ajax应用常见的HTTP ContentType设置的相关信息,可以在本站进行搜索。

本文标签: