Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用套接字测试出站HTTP调用?_Python_Django_Sockets_Asyncsocket_Webhooks - Fatal编程技术网

Python 使用套接字测试出站HTTP调用?

Python 使用套接字测试出站HTTP调用?,python,django,sockets,asyncsocket,webhooks,Python,Django,Sockets,Asyncsocket,Webhooks,我正在尝试为django中的webhooks回调编写一个单元测试。我的应用程序是这样设置的,当我运行一段代码时,它会向我选择的URL发送一个POST请求——这就是我正在尝试测试的功能 我想设置一个套接字来侦听这个请求,并告诉我它是否已发送。我想是这样的: import socket def webHooksTest(self): targetURL = 'http://127.0.0.1:8000' s = socket.socket(socket.AF_INET, sock

我正在尝试为django中的webhooks回调编写一个单元测试。我的应用程序是这样设置的,当我运行一段代码时,它会向我选择的URL发送一个POST请求——这就是我正在尝试测试的功能

我想设置一个套接字来侦听这个请求,并告诉我它是否已发送。我想是这样的:

import socket

def webHooksTest(self):
    targetURL = 'http://127.0.0.1:8000'

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind('localhost', 8000)
    s.listen(1)
    s.accept()

    # Code that triggers POST request goes here

    self.assertNotEqual(s.recvd(), None, "WebHooks URL did not receive anything")
照目前的情况,这根本不起作用,因为程序将挂起在s.accept()行上,并且永远不会发送请求


我对异步编程完全陌生,需要一些建议。通过检查Python文档,我相当确定单靠套接字模块无法做到这一点——我需要一些异步魔法

套接字库无法单独完成此操作。看一看。 这应该对你有帮助。虽然我还没有和django试过