• HTTP协议以及PYTHON开发技巧


    HTTP协议以及PYTHON开发技巧 - lrenjundk的专栏 - 博客频道 - CSDN.NET

    HTTP协议以及PYTHON开发技巧

    分类: Python 网络协议 85人阅读 评论(0) 收藏 举报
      

            http协议的相关知识应该都很清楚,这里简单回顾下其流程。首先HTTP底层是利用TCP进行通讯的;其次,HTTP本身协议是面向无连接的:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

            Python采用httplib库进行HTTP通讯,用法很简单:

    1. import httplib #导入httplib库  
    2. conn = httplib.HTTPConnection("10.197.32.136",8080#建立http链接,只需要IP地址和端口  
    3. conn.request("POST","/RealTimeServer/WebSocketDemo",str,{}) #发送url请求  
    4. response = conn.getresponse() #获取返回信息  
    5. conn.close() #关闭链接  

             request函数是非阻塞函数,也就是说,它向服务器发送了url请求之后,可以正常运行之后的任务。

             getresponse函数是阻塞函数,如果没有收到服务器的返回信息,程序将无法继续。

             close函数在任何地方都可以调用,因此,如果无需服务器返回信息,则可以在发送请求之后就关闭链接。

             请注意,Httplib无法连续发送两个request,例如:

    1. conn.request("POST","/RealTimeServer/WebSocketDemo",str1,{})  
    2. conn.request("POST","/RealTimeServer/WebSocketDemo",str2,{})   

            
             程序将会抛异常,并且关闭。因为http协议本身一次链接只支持一个request,在收到response或者关闭才能开启下一次链接。所以,正常的程序应该是:

    1. conn.request("POST","/RealTimeServer/WebSocketDemo",str1,{})  
    2. conn.close()   
    3. conn.request("POST","/RealTimeServer/WebSocketDemo",str2,{})   

    或者:

    1. conn.request("POST","/RealTimeServer/WebSocketDemo",str1,{})  
    2. response = conn.getresponse()  
    3. conn.request("POST","/RealTimeServer/WebSocketDemo",str2,{})   
  • 相关阅读:
    The jQuery UI CSS Framework(中文说明)
    锁定表头和固定列(Fixed table head and columns)
    html5学习二(canvas)
    浅析深究什么是SOA
    页面加载完毕后执行js函数的方法
    Spring AOP详解(转)
    db2move详解
    DB2 命令总汇
    Ubuntu下Apache的配置
    maven打包的一些问题
  • 原文地址:https://www.cnblogs.com/lexus/p/2850302.html
Copyright © 2020-2023  润新知