发送登录头python 2.7

发送登录头python 2.7,python,json,api,iot,Python,Json,Api,Iot,嗨,我需要发送登录头到sigfox。但是,当我在调用中插入auth变量时,它们总是被拒绝或代码失败 这是一个可以工作但不能拒绝的代码 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,

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

这是一个可以工作但不能拒绝的代码

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)
打印(数据)

这就是失败的代码

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) 

第二个代码不那么凌乱,但stackoverflow使用idention。我想我需要在r变量中传递auth,但我不知道如何正确地传递。我使用的是Python 2.7,您需要对用户ID和密码进行编码

encodedUname = urllib.quote_plus(userName)
encodedPwd = urllib.quote_plus(password)
http://{encodedUname}:{encodedPwd}@{url}

您需要对用户ID和密码进行编码

encodedUname = urllib.quote_plus(userName)
encodedPwd = urllib.quote_plus(password)
http://{encodedUname}:{encodedPwd}@{url}

您的问题是以下两个问题之一:

  • 您需要执行POST请求而不是GET,因为我看到您应该在body中发送数据,而不是在查询中作为参数发送数据
  • 您应该以正确的方式使用GETAPI:
    requests.GET(url,params=None,**kwargs)
  • 这是来自开发者界面的函数签名。所以你应该换一个
    r=requests.get('https://api.sigfox.com/v2/devices,数据=用户,流=真)
    具有
    r=requests.get('https://api.sigfox.com/v2/devices,params=users,stream=True)


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

    您的问题是以下两个问题之一:

  • 您需要执行POST请求而不是GET,因为我看到您应该在body中发送数据,而不是在查询中作为参数发送数据
  • 您应该以正确的方式使用GETAPI:
    requests.GET(url,params=None,**kwargs)
  • 这是来自开发者界面的函数签名。所以你应该换一个
    r=requests.get('https://api.sigfox.com/v2/devices,数据=用户,流=真)
    具有
    r=requests.get('https://api.sigfox.com/v2/devices,params=users,stream=True)


    但我强烈认为它应该是一个POST请求,而不是GET。

    你能用一个例子更具体一点吗?下面的链接有使用请求和urllib Thx的例子,但这两个例子都不起作用。我使用了最新的回溯示例(上次调用):data=r.raw.read(r)文件“C:\Python27\lib\site packages\urllib3\response.py”中的文件“\devicetypes.py”,第171行,在read data=self中的第442行。_fp.read(amt)文件“C:\Python27\lib\httplib.py”,在read返回self中的第573行。_read_chunked(amt)文件“C:\Python27\lib\httplib.py”,第643行,在_read\u chunked amt-=chunk\u left中,你能用一个例子更具体一点吗?下面的链接有一个例子,使用请求和urllib Thx都不起作用。我使用了最新的回溯示例(最近一次调用):data=r.raw.read(r)中第171行的文件“\devicetypes.py”文件“C:\Python27\lib\site packages\urllib3\response.py”,第442行,读数据=self.\u fp.read(amt)文件“C:\Python27\lib\httplib.py”,第573行,读返回self.\u读块(amt)文件“C:\Python27\lib\httplib.py”,第643行,读块amt-=chunk\u leftdevices=requests.get(“,auth=(API\u USER,API\PWD)).json()r=requests.post(“”,params=users,stream=True)data=r.raw.read(r)print(data)仍然给我错误401未经授权的HTTP错误401访问/api/v2/设备的问题。原因:未经授权的

    我也认为应该发布。但是文档上说get。如果它是get,那么你应该在请求中使用
    参数
    ,而不是
    数据
    。我做了这看起来像是sigfox方面的问题,这是一个问题一年多以来,越来越多的人遇到了这个问题。给出了一些关于curl的模糊解决方案,它们工作了一段时间,但现在似乎不再工作了。devices=requests.get(“,auth=(API_USER,API_PWD)).json()r=requests.post(“”,params=users,stream=True)data=r.raw.read(r)print(data)仍然给我错误401未经授权的HTTP错误401访问/api/v2/设备的问题。原因:未经授权的

    我也认为应该发布。但是文档上说get。如果它是get,那么你应该在请求中使用
    参数
    ,而不是
    数据
    。我做了这看起来像是sigfox方面的问题,这是一个问题一年多以来,越来越多的人遇到了这个问题。他们给出了一些关于卷曲的模糊解决方案,他们工作了一段时间,但现在似乎不再工作了。