当前位置: 首页 > 知识库问答 >
问题:

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

乐正远
2023-03-14

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

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()

pushes是一个字典列表。

我将应用程序移植到另一个框架中。问题消失了。
发送请求的源服务器上的代码没有被修改。

共有1个答案

廖君昊
2023-03-14

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

 类似资料:
  • 这是我的控制器: 这是我的配置: 这是类别类: 如果我尝试发送内容类型为application/json和以下正文的post请求: {“id”:8,“title”:“Паа”、“engTitle”:“Pizza”、“description”:null,“menuItems”:[{“id”:4,“title”:“Паааааааааааа”和“engTitle”:“Pepperoni”、“price

  • 我正试图根据以下代码发出post请求: 在Postman,此请求工作正常,不需要身份验证,无需登录名、密码或令牌即可工作。但是,上面的代码不起作用。 日志控制台的一部分如下: 我无法粘贴整个stacktrace,因为stackoverflow平台不允许。

  • 请求方式: "|3|2|url,content|\r" 参数: url 设置Post请求的url链接 content post请求的数据 返回值: "|3|code|data|\r" 参数: code http请求返回的成功或者错误码 成功:code = 200 获取数据失败:code = -1 http请求字段错误:code = 1 data http请求返回的数据 Arduino样例: sof

  • 代码如下: 这将向flask发送一个{“name”:“go”}JSON字典。Flask应该将语言名称追加到数组中,并在响应中返回完整的数组。现在,当我手动发送请求时,这就工作了,所以这不是Flask的错误。但是当我从iOS发送上述内容时,我在flask控制台中得到request.json==None。很明显,我送的是一具空尸体,但我不应该。你知道我哪里出了问题吗?

  • 我最近开始在我的android应用程序中使用改装,这是我添加用户的改装请求: 这里User是我想在服务器上注册的用户的模型类。问题是服务器需要Base64.encode()格式的json正文请求。有没有办法使用改装发送Base64编码数据? 我可以想到手动这样做: 然后在请求中传递这个。但是,我必须手动完成这项工作,并处理每个POST请求。有没有更干净的方法。

  • 我正在使用截击与API交互。我需要向返回JSON数组的服务发送post请求(带参数)。 JsonObjectRequest有一个构造函数,它接受一个方法和一组参数 但是JSONArrayRequest(我需要的一个)只有一个构造函数的形式 我如何才能使其发送包含数据的POST请求?