使用Python发送POST请求的正确方法(urllib2、base64和json)

2024-05-18 20:14:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要发送数千个邮寄请求。 我在网上搜索信息,经过多次尝试,我编写了代码 以下解决方案:

post_data = urllib.urlencode({'pushes': b64encode(json.dumps(pushes))})
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent' : user_agent,
            'Content-type': "application/x-www-form-urlencoded",
            'Accept': "text/plain"}
request = urllib2.Request(PUSH_URL, data=post_data, headers=headers)
response = urllib2.urlopen(request).read()

push是一个字典列表。在

大多数情况下,这个解决方案运行良好,但有时会导致目标服务器(Apache)上出现分段错误。我监视了目标服务器上打开的连接。 连接数低(100-200)。 也许我的代码不是100%正确。 我需要一个更可靠的解决方案。在

提前谢谢。在

更新-2013年1月25日
我使用strace调试apache web服务器(目标服务器)。
我发现Zend框架使用的syscall'gettimeofday'有一些问题。
我试着把zend应用程序移到两个不同的服务器上, Centos和Ubuntu Server 12.04。
PHP版本也从5.3更改为5.4。
我对斯特拉斯总是有同样的问题。在

我将应用程序移植到另一个框架中。问题消失了。
未修改执行POST请求的源服务器上的代码。在


Tags: 代码服务器框架信息应用程序目标datarequest
1条回答
网友
1楼 · 发布于 2024-05-18 20:14:50

如果Apache上有segfaults,为什么认为问题出在代码上?我要做的是仔细观察一下Apache的情况,当它濒临死亡时——打开调试日志,strace/ktrace它的进程,最后测试在使用其他http服务器(如Nginx或Lighttpd)时是否会发生同样的情况。 在不知道Apache为什么会消亡的情况下,您甚至无法尝试在代码中对其进行修正(即使正确的解决方案是修复Apache)。在

相关问题 更多 >

    热门问题