requests.get(url) return 来自 kubernetes api 的错误代码 404 而可以通过 curl/GET 获得响应
requests.get(url) return error code 404 from kubernetes api while the response could be get via curl/GET
我在 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": "Status","apiVersion": "v1","metadata": {},"status": "Failure","message": "pods \"tas-core\"未找到","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","labels": {"app": "tas-core"},"annotations": {"ctrl": "dynamic","oam": "dynamic"}},"spec": {"volumes":[ ...
进一步缩短url效果很好
url = 'http://10.69.117.136:8080/api/v1/namespaces/'
json = requests.get(url)
print json.content
{"kind":"NamespaceList","apiVersion":"v1","metadata":{"selfLink":/api/v1/namespaces/ ","resourceVersion":"220452"},"items":[{"metadata":{"name":"default","selfLink":"/api/v1/namespaces/默认","uid":"74f89440-a94a-11e5-9afd-0050569761f2","resourceVersion":"6","creationTimestamp":"2015-12-23T07:54:55Z "},"spec":{"finalizers":["kubernetes"]},"status":{"phase":"Active"}}]}
我哪里错了?
从 requests
和命令行发出请求将其发送到不同的 urls。
来自 Python 代码的 requests
请求确实尝试使用 url 包括引号。
curl
从命令行删除引号(在其他情况下它会转义引号)。
我无法测试您的真实请求 url,但我想,以下方法可能有效:
url = 'http://10.69.117.136:8080/api/v1/namespaces/default/pods/tas-core/'
json = requests.get(url)
print json.content
我在 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": "Status","apiVersion": "v1","metadata": {},"status": "Failure","message": "pods \"tas-core\"未找到","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","labels": {"app": "tas-core"},"annotations": {"ctrl": "dynamic","oam": "dynamic"}},"spec": {"volumes":[ ...
进一步缩短url效果很好
url = 'http://10.69.117.136:8080/api/v1/namespaces/'
json = requests.get(url)
print json.content
{"kind":"NamespaceList","apiVersion":"v1","metadata":{"selfLink":/api/v1/namespaces/ ","resourceVersion":"220452"},"items":[{"metadata":{"name":"default","selfLink":"/api/v1/namespaces/默认","uid":"74f89440-a94a-11e5-9afd-0050569761f2","resourceVersion":"6","creationTimestamp":"2015-12-23T07:54:55Z "},"spec":{"finalizers":["kubernetes"]},"status":{"phase":"Active"}}]}
我哪里错了?
从 requests
和命令行发出请求将其发送到不同的 urls。
来自 Python 代码的 requests
请求确实尝试使用 url 包括引号。
curl
从命令行删除引号(在其他情况下它会转义引号)。
我无法测试您的真实请求 url,但我想,以下方法可能有效:
url = 'http://10.69.117.136:8080/api/v1/namespaces/default/pods/tas-core/'
json = requests.get(url)
print json.content