如何将原始 POST 数据传递到 urllib3 中?

2023-12-02

尝试使用 urllib3 发布 JSON 编码数据。 只是希望我的 POST 有效负载是原始 JSON 字符串,内容类型为 application/json。 我只是不知道该怎么做。

urllib3 文档描述了在“字段”中发布数据,即带有(键,值)对的字典,就像 HTML 表单如何使用 URL 进行 URL 编码一样。但我不想那样做。

我能得到的最接近的是这个(我只是猜测将数据放在哪里,因为它没有记录在我能找到的任何地方):

http = urllib3.PoolManager()
headers = urllib3.util.make_headers(basic_auth=key+":")
r = http.request_encode_body('POST', path, json.dumps(payload), headers=headers)

这会导致 urllib3 错误:

File "C:\Python27\lib\site-packages\urllib3-1.7.1-py2.7.egg\urllib3\filepost.py", line 44, in iter_field_objects
yield RequestField.from_tuples(*field)
TypeError: from_tuples() takes exactly 3 arguments (2 given)

感谢您的指点!


你不能使用PoolManager.request为此,它尝试自己构建身体,使用较低的水平urlopen:

In [16]: pool = urllib3.PoolManager()

In [17]: print pool.urlopen('POST', 'http://httpbin.org/post', headers={'Content-Type':'application/json'}, body='{"sup":"son"}').data
{
  "data": "{\"sup\":\"son\"}",
  "form": {},
  "json": {
    "sup": "son"
  },
  "origin": "50.74.23.243",
  "args": {},
  "url": "http://httpbin.org/post",
  "files": {},
  "headers": {
    "Host": "httpbin.org",
    "Content-Length": "13",
    "Content-Type": "application/json",
    "Accept-Encoding": "identity",
    "Connection": "close"
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将原始 POST 数据传递到 urllib3 中? 的相关文章

随机推荐

  • 将三个用例合并为一个用例

    我有一个演员 管理员 他可以对其他用户帐户执行一些操作 例如创建帐户 编辑帐户和删除帐户帐户 我应该做这样的事情 gt UseCase createAccount o gt UseCase DeleteAccount Admin gt Us
  • 对“qInitResources_systray()”的未定义引用

    我用qt官方示例并得到错误 media roroco disk750 Downloads qtbase examples widgets desktop systray main cpp 50 undefined reference to
  • 自动填充用户名和密码 UIWebView Swift

    我发现了很多在 Objective C 中自动填充用户名和密码的方法 但我不知道如何让它与 Swift 一起工作 这段代码的 Swift 等价物是什么 这是否适合我想要完成的任务 谢谢 void webViewDidFinishLoad U
  • 如何判断某个蓝牙设备是否已连接?

    我想使用 applescript 进行定期 每秒 检查以查看是否连接了特定的蓝牙设备 如果是 则弹出快速通知 为了框架它 我想要一个弹出窗口 当我的 Airpods 连接时 因为有时当我把它们拉出来时 它会连接到我的电脑 有时会连接到我的
  • XCode 无法识别环境变量

    我使用以下脚本在 OSX Yosemite 10 10 5 上运行 XCode 7 0 1 7A1001 export FOO bar this should not be necessary but just in case launch
  • 如何配置 Oracle tnsnames 文件位置? [关闭]

    Closed 这个问题是无关 目前不接受答案 我在 Windows 上安装了 Oracle 10g 目前 我的 tnsnames 文件存储在 ORACLEHOME network admin 中 但是 我想将 Oracle 配置为在其他位置
  • 尝试从 C 中的字符串中删除所有数字

    我试图从字符串 char 中取出所有数字 这是我现在所拥有的 Take numbers out of username if they exist don t care about these char newStr strtoul use
  • iPhone,addSubView不调用willViewAppear?

    我正在添加一个视图 addSubView 我也在其他地方使用该视图presentModalViewController viewWillAppear使用presentModalViewController 调用 但不使用addSubView
  • 使用前导下划线真的会带来麻烦吗?

    C C 标准保留所有标识符以下划线开头 如果不在全局命名空间中 则加上大写字母 或包含两个或多个相邻的下划线 例子 int myGlobal namespace mine void Im outta control int LivingDa
  • 为什么 html br 断行标记在此代码中不起作用? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 有人能告诉我为什么我的 php 换行符不起作用 回显 吗 我知道我可以用不同的方式编写代码以使换行符起作用 但我想知道这背后的原因 看来我
  • 为什么iOS坐标系很难理解??只有我?

    我正在研究iOS的UIView 我发现我无法理解边界是如何工作的 For example 请运行此代码 并看到红色框在移动 红框升起来了 白色的根视图是静态的 为什么 为什么红框会上升 请让我知道OTL class ViewControll
  • 互相关

    我一直在尝试找到时移信号响应与作为参考的另一个信号响应之间的互相关性 但发现很难使我的时移反映在 xcorr 函数中 matlab代码粘贴在下面 如果有人能就如何实现xcorr函数提出建议 我将不胜感激 这样我就可以确定两个信号响应相关的时
  • 使用 [].replace 复制数组

    我有一堂课 我正在使用Array shift实例变量上的实例方法 我以为我制作了实例变量的 副本 但事实上我没有并且shift实际上是在改变实例变量 例如 在我期望得到之前 foo bar baz 两次均给出以下信息 class Foo a
  • 使用带有进度报告的 C# 提取 ZipFile

    谁能告诉我是否有可能 如果有的话给出一个例子 如何让进度条 如果可能的话还有状态标签 显示使用 ZipFile Ionic zip http dotnetzip codeplex com 我的 WinForm 在将 ZIP 文件从我选择的路
  • Python-获取日期格式[重复]

    这个问题在这里已经有答案了 我获取一个字符串形式的日期 然后将其解析为日期时间对象 有什么方法可以检查对象的日期格式是什么 假设这是我正在创建的对象 modified date parser parse 2015 09 01T12 34 1
  • 局部变量赋值的退出状态错误

    下面的例子展示了如果temp file被制作local作为同一行的一部分mktemp被调用 然后使用检索退出状态 始终为零 无论命令成功还是失败 mktemp xyz使用它总是会失败 如果temp file被制作local提前然后 退出状态
  • 对目标 c 中的负数和正数进行排序

    我通过网络服务列出了物品的数量百分比 我得到的响应是类似于下面代码的字典数组 我需要它以排序的格式 NSArray numberArray NSArray arrayWithObjects NSDictionary dictionaryWi
  • 在 Java Swing 中向 JPanel 添加按钮

    我将 JLabel 和 JCombobox 附加到 JPanel 这工作正常 但是当我向其中添加另外两个按钮时 我看不到这些按钮 下面是我的代码 JPanel jPanel new JPanel jPanel setLayout null
  • 从 ASP.NET Web API 中的控制器返回二进制文件

    我正在使用 ASP NET MVC 的新 WebAPI 开发一个 Web 服务 该服务主要提供二进制文件 cab and exe files 以下控制器方法似乎有效 这意味着它返回一个文件 但它将内容类型设置为application jso
  • 如何将原始 POST 数据传递到 urllib3 中?

    尝试使用 urllib3 发布 JSON 编码数据 只是希望我的 POST 有效负载是原始 JSON 字符串 内容类型为 application json 我只是不知道该怎么做 urllib3 文档描述了在 字段 中发布数据 即带有 键 值