py脚本curl报错解决方法curl: (1) Received HTTP/0.9 when not allowed

这篇具有很好参考价值的文章主要介绍了py脚本curl报错解决方法curl: (1) Received HTTP/0.9 when not allowed。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近博主做一个项目,发现请求从PHP的句柄请求py脚本,老是获取不到返回数据。

所以,我直接去服务器采用curl访问,结果就报错curl: (1) Received HTTP/0.9 when not allowed

  1. 一开始我以为是我php的句柄方法中的问题,但是我用其访问另外其它系统对接的curl接口,并没有报错。

  1. 也以为是curl的错误,各种搜索以及升级curl版本,仍然解决不了。

  1. 偶然我把这个访问直接放在本地去访问,结果报错如下,有经验的大佬一看就明白,这很显然是跨域错误。

引荐来源网址政策: strict-origin-when-cross-origin

一般来说,我们常见的跨域错误都是前后端时,这种情况下,只要在任意一段加入解决跨域错误的固定代码即可,类似的 比如tp5或者vue前端,为了以后再遇到这个坑不会再踩雷,特此记录下来。

#自定义处理程序,用于处理HTTP请求
class TestHTTPHandler(BaseHTTPRequestHandler):
#处理GET请求
    def do_GET(self):
        parsed =urlparse(self.path)
        ids=parsed.query.split('=')
        contract,contract_pay=read_data()
        if len(ids)>1:
            ids=ids[1].split(',')
            ids=list(map(lambda x:int(x),ids))
            print('ids长度>1的时候')
# =============================================================================
#             print(ids)
#             print('contract')
#             print(contract)
#             print('contract_pay')
#             print(contract_pay)
#             print('engine')
#             print(engine)
# =============================================================================
            status=update_finance(contract,contract_pay,engine,ids)
            print('ids长度>1的时候返回的status的值')
            print(status)
        else:
            print('ids长度<=1的时候')
            status=update_finance(contract,contract_pay,engine)
        self.protocal_version = 'HTTP/1.1'
        self.send_response(200) #设置响应状态码
        self.send_header('Access-Control-Allow-Origin', '*')
        self.send_header('Access-Control-Allow-Methods', 'GET')
        self.send_header('Access-Control-Allow-Headers', 'Access-Control-Allow-Headers, Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers')
        self.end_headers()
        self.wfile.write(json.dumps(status).encode()) #输出响应内容 bytes("hello".encode('utf-8'))

def start_server(port):
    http_server = HTTPServer(('0.0.0.0', int(port)), TestHTTPHandler)
    print('http_server')
    http_server.serve_forever()#设置一直监听并接收请求


if __name__=='__main__':
    start_server(2187)#启动服务,监听2187端口

最重要的一点文章来源地址https://www.toymoban.com/news/detail-571902.html

self.send_header('Access-Control-Allow-Origin', '*')
self.send_header('Access-Control-Allow-Methods', 'GET')
self.send_header('Access-Control-Allow-Headers', 'Access-Control-Allow-Headers, Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers')

到了这里,关于py脚本curl报错解决方法curl: (1) Received HTTP/0.9 when not allowed的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elasticsearch 8.0报错:received plaintext http traffic on an https channel, closing connection

    ES配置启动成功了,就是客户端访问服务端出现这个错误 原因 :是因为ES8默认开启了 SSL 认证。 因为 SSL 需要使用https方式请求,所以有以下两种解决办法: 1、使用 https 发送请求,即:把 http 请求改成 https 即可。 2、修改配置文件,需要修改配置文件则继续往下看。 修改

    2024年02月11日
    浏览(47)
  • VScode导入不同模块下py文件报错ModuleNotFoundError:No module named最有效解决方法

    1、用VScode执行代码,即F5执行,或者是在服务器上用Python命令执行,修改地方为: ctrl+P,选择open user settings:UI,打开设置  然后搜索terminal.integrated.env,点击用json编辑,加上下面这几句: 然后在debug里面create 一个json文件,加上下面这两句:  保存,重启,再次运行即可。

    2024年01月20日
    浏览(47)
  • 【无标题】Cannot find reference ‘imread‘ in ‘__init__.py‘报错的解决方法

      整了好几天终于搞好了 直接写出步骤: 1你的cv2,解释器的路径必须是英文的,我的user的文件在刚买来的时候用的中文名,费了好大劲才改回来,详情请看[(怎么修改电脑的用户名? - 知乎) 2.在轮子网站下载对应版本的轮子https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud 注意下载

    2024年02月06日
    浏览(35)
  • Elasticsearch 启动报错:received plaintext http traffic on an https channel, closing connection Netty4Ht

    elasticsearch  启动报错:received plaintext http traffic on an https channel, closing connection Netty4HttpChannel。 现象,当启动Elasticsearch后,在浏览器输入地址 http://localhost:9200/ 后,报错 received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/127.0.0.1:9200, remoteAddress=/127

    2024年02月16日
    浏览(41)
  • 报错解决方法——http404(Spring MVC)

    成功的标志就是在项目跑起来之后再target文件夹中的classes文件夹中可以找到自己写的配置文件。 如图所示,文件夹图标右下角有三条杠代表被识别为资源文件

    2024年01月16日
    浏览(53)
  • 记【k8s】 节点kubeadm join报错:The HTTP call equal to ‘curl -sSL http://localhost:10248/healthz‘

    💖The Begin💖点点关注,收藏不迷路💖

    2024年04月26日
    浏览(47)
  • git报错:error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413

    如图: error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 send-pack: unexpected disconnect while reading sideband packet fatal: the remote end hung up unexpectedly Everything up-to-date 原因是上传的文件过大,网上解决方案很多种,但是亲测有效的是把https传输改为ssh即可。 首先查看远程仓库: 这

    2024年02月05日
    浏览(45)
  • py脚本解决ArcGIS Server服务内存过大的问题

    在一台服务器上,使用ArcGIS Server发布地图服务,但是地图服务较多,在发布之后,服务器的内存持续处在95%上下的高位状态,导致服务器运行状态不稳定,经常需要重新启动。重新启动后重新进入这种内存高位的陷阱。 打开任务管理器发现大量 ArcSOC.exe 进程,这些进程CPU使

    2024年02月09日
    浏览(47)
  • conda 解决An HTTP error occurred when trying to retrieve this URL

    有以下几种可能的解决方案: 更换清华源 :可以把清华源的 URL 添加到 Anaconda 的默认通道中,这样就可以从国内的镜像下载安装包。 修改 SSL 验证 :可以在命令行中输入 conda config --set ssl_verify false 或者在 .condarc 文件中添加一行 ssl_verify: false 来关闭 SSL 验证,这样就可以避

    2024年01月17日
    浏览(52)
  • An HTTP error occurred when trying to retrieve this URL.(解决方案)

    在通过vscode向服务器安装pytorch时,切换了清华源之后,遇到了下面的错误: An HTTP error occurred when trying to retrieve this URL. HTTP errors are often intermittent, and a simple retry will get you on your way. 遇到此错误的时添加的清华源如下: 解决方案: 将添加的清华源地址中的 https 改为 http ,添

    2024年02月13日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包