實現http請求的幾種方式 curl urllib

2021-08-25 11:37:40 字數 3458 閱讀 9251

//簡單的post請求

curl -d '' 127.0.0.1:8080

//表單格式
// json格式
from urllib.request import urlopen

s_raw_url = "www.***.com"

resp = urlopen(s_raw_url, timeout=1.5)

# -*- coding: utf-8 -*-

import sys

import json

import requests

def get_result(data):

data = json.dumps(data,ensure_ascii=false).encode()

url = ""

result = requests.post(url,data=data,headers=headers)

return result

def main():

# json 資料格式

data = {}

result = get_result(data)

print (result.content)

if __name__ == '__main__':

main()

import urllib2

import urllib

import json

def getcssptoken(send_data):

# url為請求位址,這裡以釘釘機械人為示例

url = ''

f = urllib2.urlopen(req)

response = f.read()

f.close()

import requests

import urllib

import json

from requests_toolbelt import multipartencoder

def file_post():

#data為資料,s_file_path為檔案路徑,url為請求位址

headers =

# 這裡以多表單傳檔案示例

m = multipartencoder(

fields=)

headers['content-type'] = m.content_type

resp = requests.post(url, data=m, headers=headers, timeout=600)

return resp.content

def get_result():

#資料send_data =

#表單序列化

send_data = url_encoder(send_data)

headers =

#url為請求位址

result = requests.post(url, data=send_data, headers=headers)

return res

'''

* input: 字串

* ouput: md5值

'''def md5(src):

import hashlib

m2 = hashlib.md5()

m2.update(src.encode('utf-8'))

return m2.hexdigest()

'''

* 表單序列化

* input: 表單字典

* 例:

* ouput: 序列化結果

* 例:data=sth&state=1

'''def url_encoder(params):

g_encode_params = {}

def _encode_params(params, p_key=none):

encode_params = {}

if isinstance(params, dict):

for key in params:

encode_key = '{}[{}]'.format(p_key,key)

encode_params[encode_key] = params[key]

elif isinstance(params, (list, tuple)):

for offset,value in enumerate(params):

encode_key = '{}[{}]'.format(p_key, offset)

encode_params[encode_key] = value

else:

g_encode_params[p_key] = params

for key in encode_params:

value = encode_params[key]

_encode_params(value, key)

if isinstance(params, dict):

for key in params:

_encode_params(params[key], key)

return urllib.parse.urlencode(g_encode_params)

def getbyte(path):

with open(path, 'rb') as f:

img_byte = base64.b64encode(f.read())

img_str = img_byte.decode('ascii')

return img_str

def file_get_contents(filename, use_include_path = 0, context = none, offset = -1, maxlen = -1):

if (filename.find('://') > 0):

ret = urllib.urlopen(filename).read()

if (offset > 0):

ret = ret[offset:]

if (maxlen > 0):

ret = ret[:maxlen]

return ret

else:

fp = open(filename,'rb')

try:

if (offset > 0):

fp.seek(offset)

ret = fp.read(maxlen)

return ret

finally:

fp.close( )

《未完待續

HTTP的幾種請求方式

基於http的請求方式一共有八種。get請求 這種方法是將資訊儲存在url中,既不安全,還無法傳遞太大的資料。官方說明 向特定的路徑資源發出請求。注意 get方法不應當被哦那個與產生 的操作中。一般的網路爬蟲都會從get入手。post 向指定的路徑提交資料進行處理請求,一般用於表單的提交資料。注意 ...

golang基礎 http請求的幾種方式

簡單粗暴,直接上 讀取響應 通過curl x get http localhost 9999 t test1 執行請求測試,輸出如下 解析響應資料 通過curl x post http localhost 9999 t post 執行請求測試,輸出如下 q.set 男 發起post表單請求 解析響應...

HTTP協議的幾種請求方式method

http是超文字傳輸協議,其定義了客戶端與伺服器端之間文字傳輸的規範。http預設使用80埠,這個埠指的是服務端的埠。需要注意的是,現在大多數訪問都使用了https協議,而https的預設埠為443,如果使用80埠訪問https協議的伺服器可能會被拒絕。http協議中的請求方法 有時也叫 動作 用來...