如何用Python requests实现curl的-X UNLINK请求?
如何用requests实现UNLINK自定义HTTP请求
这问题我太熟了!requests的Session确实没提供直接的unlink()方法,但它有个通用的request()底层方法,专门用来处理这种自定义HTTP动词的需求,完美适配你的UNLINK请求场景。
先回顾你给出的curl UNLINK示例:
curl -X UNLINK -H "Authorization: OAuth <>" -H 'Link: <https://some/my/url>; rel="relates"' "https://some/my/url"
实现步骤
requests的request()方法允许你传入任意HTTP方法名(包括自定义的UNLINK),只需要把method参数设为'UNLINK',再带上对应的请求头和URL即可。结合你之前用SESSION.patch()的写法,对应的UNLINK实现如下:
# 假设你已经初始化了SESSION这个requests.Session实例 headers = { 'Authorization': 'OAuth %s' % some_token, # 注意Link头的格式要和curl里完全一致 'Link': '<https://some/my/url>; rel="relates"' } # 用通用request方法发送UNLINK请求 r = SESSION.request('UNLINK', 'https://some/my/url', headers=headers) # 可选:检查响应结果 print(r.status_code) print(r.json() if r.headers.get('Content-Type') == 'application/json' else r.text)
额外补充
如果你的UNLINK请求需要像之前PATCH那样带URL参数(比如notify),直接加上params参数就行:
params = ( ('notify', 'False'), ) r = SESSION.request('UNLINK', 'https://some/my/url', headers=headers, params=params)
这个方法的核心逻辑是:requests的request()是所有HTTP方法(GET/POST/PATCH等)的底层实现,它支持传入任意字符串作为HTTP动词,不管是标准的还是像UNLINK这种自定义的,都能正确发送请求。
内容的提问来源于stack exchange,提问作者Vlad Rudskoy
相关产品推荐
相关产品推荐

