首页 文章

requests.get(url)从kubernetes api返回错误代码404,而响应可以通过curl / GET获得

提问于
浏览
1

我在kubernetes api上使用了requests.get()遇到了一个问题

url = 'http://10.69.117.136:8080/api/v1/namespaces/"default"/pods/tas-core/'
json = requests.get(url)
print json.content

错误代码404将返回为:{“kind”:“状态”,“apiVersion”:“v1”,“元数据”:{},“状态”:“失败”,“消息”:“pods”tas- core \“not found”,“reason”:“NotFound”,“details”:{“name”:“tas-core”,“kind”:“pods”},“code”:404}

但如果我使用GET / curl,可以成功返回响应:

curl http://10.69.117.136:8080/api/v1/namespaces/"default"/pods/tas-core/

{“kind”:“Pod”,“apiVersion”:“v1”,“metadata”:{“name”:“tas-core”,“namespace”:“default”,“selfLink”:“/ api / v1 / namespaces / default / pods / tas-core“,”uid“:”a264ce8e-a956-11e5-8293-0050569761f2“,”resourceVersion“:”158546“,”creationTimestamp“:”2015-12-23T09:22:06Z“ ,“标签”:{“app”:“tas-core”},“annotations”:{“ctrl”:“dynamic”,“oam”:“dynamic”}},“spec”:{“卷”:[ ...

更短的网址工作得更好

url = 'http://10.69.117.136:8080/api/v1/namespaces/'
json = requests.get(url)
print json.content

{ “种类”: “的NamespaceList”, “apiVersion”: “V1”, “元数据”:{ “selfLink”: “/ API / V1 /命名空间/”, “resourceVersion”: “220452”}, “物品”:[ { “元数据”:{ “名称”: “缺省”, “selfLink”: “/ API / V1 /命名空间/默认”, “UID”: “74f89440-a94a-11e5-9afd-0050569761f2”, “resourceVersion”:” 6" , “creationTimestamp”: “2015-12-23T07:54:55Z”}, “规格”:{ “终结”:[ “kubernetes”]} “状态”:{ “相”: “活跃”}} ]}

我哪里错了?

1 回答

  • 1

    requests 和命令行发出请求将其发送到不同的URL .

    Python代码的 requests 请求确实尝试使用包含引号的url .

    命令行中的 curl 会删除引号(在其他情况下,它会转义引号) .

    我无法测试您真实请求的真实网址,但我想,以下可能会有效:

    url = 'http://10.69.117.136:8080/api/v1/namespaces/default/pods/tas-core/'
    json = requests.get(url)
    print json.content
    

相关问题