我不能使用python请求包(长篇大论,让我们假设我已经用尽了使用该包的所有可能性)
是否有替代软件包可以提供以下代码的确切功能?
import requests
requests.post(URL, data=DATA, auth=(USERNAME, PASSWORD), headers=HEADER)
答案 0 :(得分:3)
如果由于模块名称导致唯一的问题是导入,则始终可以按完整路径导入或更改模块搜索路径并在导入后重置它。为了避免冲突,您可以使用import requests as requests2
或类似的东西。
有关第一个选项或有关搜索路径的文档,请参阅以下问题。
How to import a module given the full path?
https://docs.python.org/2/tutorial/modules.html#the-module-search-path
答案 1 :(得分:2)
另一种方法,httplib用法
import httplib
import urllib
from base64 import b64encode
# your form
form_data = {'a':1 'b':2}
params = urllib.urlencode(form_data)
# build authorization
user_and_pass = b64encode(b"username:password").decode("ascii")
# headers
headers = {'Authorization': 'Basic %s' % user_and_pass}
# connection
conn = httplib.HTTPConnection("example.com")
conn.request('POST', '/v3/call_api', params, headers)
# get result
response = conn.getresponse()
print response.status, response.reason
data = response.read()
conn.close()
答案 2 :(得分:1)
"提供数据参数时,HTTP请求将是POST而不是GET。"
所以类似的东西(我将使用一个图像示例只是因为它太难以辨认出来):
import urllib
import urllib2
import numpy as np
import cv2
image_to_send = np.zeros(512, np.uint8)
buffer_image = \
np.array(cv2.imencode('.png', image_to_send)[1]).tostring()
post_data = \
urllib.urlencode((('img_type','.png'),('img_data',buffer_image)))
req = \
urllib2.urlopen('http://www.yourdestination.com/imageupload/', data=post_data)
如果您需要身份验证,则需要继承urllib.FancyURLopener
,并覆盖prompt_user_passwd