簡體   English   中英

替代request.post函數?

[英]Alternative to requests.post function?

我不能使用python請求包(長話短說,假設我已經用盡了使用該包的所有可能性)

是否有替代軟件包可以提供以下代碼的確切功能?

import requests
requests.post(URL, data=DATA, auth=(USERNAME, PASSWORD), headers=HEADER)

如果由於模塊名稱而引起的唯一問題是導入,則始終可以按完整路徑進行導入,也可以更改模塊搜索路徑並在導入后將其重置。 為了避免沖突,您可以將import requests as requests2或類似的東西。 有關第一個選項或有關搜索路徑的文檔,請參見以下問題。

給定完整路徑,如何導入模塊?

https://docs.python.org/2/tutorial/modules.html#the-module-search-path

另一種方法,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()

來自urllib2.urlopen

“當提供data參數時,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子類urllib.FancyURLopener ,並覆蓋prompt_user_passwd

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM