首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发送登录头python 2.7

发送登录头python 2.7
EN

Stack Overflow用户
提问于 2019-02-28 10:40:34
回答 2查看 63关注 0票数 0

嗨,我需要发送登录头到sigfox。但是,当我在调用中插入auth变量时,它们总是被拒绝或代码失败。

这是确实工作但确实拒绝的代码。

代码语言:javascript
复制
print 'end of the dummy'
devices = requests.get("https://api.sigfox.com/v2/devices", auth=(API_USER, API_PWD)).json()
r = requests.get('https://api.sigfox.com/v2/devices', data=users, stream=True)
data = r.raw.read(r)

打印(数据)

这就是失败的代码。

代码语言:javascript
复制
credentials = b64encode(b"somebase64string:somebase64string").decode("ascii")
headers = { 'Authorization' : 'Basic %s' %  credentials }


print 'end of the dummy'
devices = requests.get("https://api.sigfox.com/v2/devices", auth=(API_USER, API_PWD)).json() r = requests.get('https://api.sigfox.com/v2/devices', auth=credentials, data=users, stream=True) data = r.raw.read(r)


print(data) 

第二段代码不那么凌乱,但堆叠溢出的工作是无效的。我想我需要在r变量中传递auth,但是我不知道如何正确地做到这一点。我正在使用Python2.7

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-28 10:48:06

你的问题是其中之一:

  1. 您需要执行POST请求,而不是GET,因为我看到您应该在体内发送数据,而不是作为查询中的参数发送数据。
  2. 您应该以适当的方式使用GET:requests.get(url, params=None, **kwargs)

这是来自开发人员界面的函数签名。所以您应该用r = requests.get('https://api.sigfox.com/v2/devices', data=users, stream=True)替换为r = requests.get('https://api.sigfox.com/v2/devices', params=users, stream=True)

但我强烈认为这应该是一个请求,而不是得到。

票数 1
EN

Stack Overflow用户

发布于 2019-02-28 10:46:52

您需要对userid和密码进行编码。

代码语言:javascript
复制
encodedUname = urllib.quote_plus(userName)
encodedPwd = urllib.quote_plus(password)
http://{encodedUname}:{encodedPwd}@{url}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54923696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档