如何向 Python REST 请求添加基本身份验证?

2023-12-30

我有以下简单的 Python 代码,可以向 REST 服务发出简单的发布请求 -

params= { "param1" : param1,
          "param2" : param2,
          "param3" : param3 }
xmlResults = urllib.urlopen(MY_APP_PATH, urllib.urlencode(params)).read()
results = MyResponseParser.parse(xmlResults)

问题是用于调用 REST 服务的 URL 现在需要基本身份验证(用户名和密码)。如何尽可能简单地将用户名和密码/基本身份验证合并到此代码中?


如果基本身份验证 = HTTP 身份验证,请使用以下内容:

import urllib
import urllib2

username = 'foo'
password = 'bar'

passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, MY_APP_PATH, username, password)
authhandler = urllib2.HTTPBasicAuthHandler(passman)
opener = urllib2.build_opener(authhandler)
urllib2.install_opener(opener)

params= { "param1" : param1,
          "param2" : param2,
          "param3" : param3 }

xmlResults = urllib2.urlopen(MY_APP_PATH, urllib.urlencode(params)).read()
results = MyResponseParser.parse(xmlResults)

如果没有,请使用mechanize or cookielib但如果您访问的服务有 XML API,那么该 API 肯定也包含身份验证。

2016年编辑:无论如何,使用requests http://docs.python-requests.org/en/latest/图书馆!它在一次调用中提供了上述所有内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何向 Python REST 请求添加基本身份验证? 的相关文章

随机推荐

  • 在 Postgres 中使用 rowversion 实现增量客户端更新

    我是 Postgres 的新手 到目前为止我很喜欢它 我已经对这个问题进行了很多思考 RTFM 已尽我所能 但陷入了死胡同 所以我需要在正确的方向上推动 我正在设计一个数据库 其中每个感兴趣的实体都有一个rowversion从全局序列中获取
  • 如何设置 docker 在每个构建步骤中使用注册表中的缓存

    我有两台带有 docker 的服务器和一台带有我的私人注册表的服务器 我在第一台机器上构建了 Dockerfile 然后我将图像推送到注册表 是否可以使用注册表中的缓存立即在第二台计算机上构建 Dockerfile 如果没有 有没有什么方法
  • Firebase“无法将 java.util.HashMap 类型的值转换为 int”

    在我的代码中的这一行OnDataChange 方法中的ValueEvenListener int latest dataSnapshot getValue Integer class 我得到了一个DatabaseException与错误Fa
  • 将 uint8 数组合并到 uint64 错误

    我正在尝试这段代码 首先将 uint64 数字拆分为 uint8 数组 然后将所述数组合并回原始数字 但是当我尝试打印出号码时out 它似乎返回 uint64 的最大值 uint8 buf 8 uint64 test 12345678901
  • React Native 生成​​视频 url 的缩略图

    我有一些视频 我想在用户单击它们以观看完整视频之前将其显示为缩略图 他们不是本地的 我只有网址 有没有 RN 组件可以做到这一点 RN Image 组件不将视频 url 作为源 可以使用世博会视频缩略图库 https docs expo i
  • Rails 4 自定义 404 导致 Heroku 上的 postgresql 连接失败

    我在生产环境中的 Heroku 上部署了一个带有自定义域的 Rails 4 应用程序 我还有一个暂存版本 该应用程序使用舒适的墨西哥沙发 出现以下问题 应用程序将达到所有请求都返回 500 错误的状态 日志显示 jesse Athens e
  • 为什么使用 fgets 时要输入 3 次 EOF?

    所以基本上我想将我写入标准输入的所有内容 包括换行符 复制到字符串以用于哈希目的 我设法做到了这一点 并编写了一些小代码来代表我的问题 include
  • 检测宽高比 - HTML5 视频

    是否可以检测 HTML5 视频元素的宽高比 我知道视频会缩小以适应
  • Recyclerview 不显示来自 Firebase Kotlin 的数据

    正如标题所说 我从昨天开始使用Kotlin 我想填充一个回收视图数据来自Firebase 我尝试了一些东西 我构建了一个适配器并尝试填充回收视图 我的数据将发送至 Firebase 但未显示在回收视图我没有收到任何错误 我找不到任何针对我的
  • 在 uitableview 中禁用弹跳也会在 iOS 5 上禁用滚动,但不会在 iOS4 上禁用

    我有一个在导航控制器中带有表格视图的应用程序 我想禁用弹跳 以便当我的表处于编辑模式时 用户可以向下滚动并找到要删除的行 否则 它会反弹 并且不会让他们有机会按该行旁边的删除图标 所以我这样做了 self tableView bounces
  • 使用 SpaCy 进行英文人名检测。寻找答案

    我正在使用 Spacy 并尝试检测文本中的名称 例如 text Keras 是一个很好的包 亚当 斯密使用一辆黑色的汽车 我希望卡特里娜飓风在她的工作中表现出色 答案应该是这样的 亚当 斯密和卡特里娜 有人可以推荐一下吗 spacy 有一个
  • 要求用户名/密码+注册的批处理文件

    我想要一个可以将用户注册到自身的批处理文件 就像是 echo off echo Choose an option echo 1 Register echo 2 Login Set option set p option Your optio
  • 如何在 SQL 循环中 INSERT INTO 表 300 次?

    我想插入一个从 SQL 计数器检索到的值并重复 300 次 就像是 DECLARE Counter 0 BEGIN Loop SET Counter Counter 1 INSERT INTO tblFoo VALUES Counter R
  • 如何按位置顺序从 Word 文档获取所有书签元素的列表到数组:VBA / Word

    我想获取 Word 文档中的所有书签 然后将它们推送到数组中 书签必须按其在文档中的位置而不是名称排序 前任 这是文档中的书签列表 bm s header bm h title bm a footer 我希望书签保持其顺序 以便数组如下所示
  • JSF 托管 Bean EJB 注入

    我在企业应用程序模块中有一个EJB PersonManager 它注入另一个EJB Person Stateful public class PersonManager implements PersonManagerLocal EJB p
  • 在 mac 上安装 scrapy - 找不到 pyasn1 发行版

    我已经在我的mac上安装了scrapy OS El Capital 10 11 4 scrapy和我的python版本 2 7 11 之间似乎没有任何兼容性问题 但是当我尝试使用以下命令启动项目时scrapy startproject tu
  • gdata youtube 查询问题

    我以前问过这个问题 但没有答案 于是又问 我只是不知道要使用哪个 gdata 框架类 以便我可以搜索 youtube 视频 我通过调试代码使用了一些类 但我认为框架太深了 可能需要很多时间才能解决这个问题 所以请帮助我 我的应用程序中有一个
  • 在特定时区中查找 LocalDate 最后可能时刻的最巧妙方法是什么?

    我们使用的预先存在的 SQL Server 数据库将 期间 存储为包含开始 gt 包含结束 UTC 日期时间值 开始列和结束列都是datetime2 7 自动转换为System DateTime的实例DateTimeKind UTC在我们开
  • 我可以更新现有的 Amazon S3 对象吗?

    我正在查看 Amazon S3 示例 这些示例用于插入 删除 但我想用新数据更新现有的 blob 基本上内容是一个文本文件 并且文本已被修改 我希望S3对象存储新的文本内容 我如何在 Java 中做到这一点 更新现有对象亚马逊S3 http
  • 如何向 Python REST 请求添加基本身份验证?

    我有以下简单的 Python 代码 可以向 REST 服务发出简单的发布请求 params param1 param1 param2 param2 param3 param3 xmlResults urllib urlopen MY APP