Python學習記錄-----批量傳送post請求
昨天學了一天的Python(我的生產語言是java,也可以寫一些shell指令碼,算有一點點基礎),今天有一個應用場景,就正好練手了。
這個功能之前再java裡寫過,比較粗糙,原來是在我本機跑的,今天老大要求要隨時保持請求,就用Python改寫了下,省的又把一個有跟多雜項的jar包傳到伺服器,省空間又不亂,而且好讀。
先附上java程式碼:
package xxxxxx.base; import java.util.Random; import org.apache.commons.lang3.StringUtils; import haojianxiang.util.HttpRequest; public class CreateFeedbackData { public static void main(String[] args) { while (true) { try { Random r = new Random(); int sleep = r.nextInt(1200000) + 600000; Thread.sleep(sleep); post(); } catch (Exception e) { e.printStackTrace(); } } } public static void post(){ String url = "http://111.111.111.111:8080/xxxx/post"; int[] types = {1, 2, 3, 4}; int index = (int) (Math.random() * types.length); int type = types[index]; // String[] contents = {"-中文測試-,","-English Test-,","
[email protected]#$%^&*()_;:'-\"<>?/|\\-,"," "}; String[] contents = {"-中文測試-,","-English Test-,","[email protected]#$%,"," "}; StringBuffer content = new StringBuffer(); content.append("haojianxiang test:"); for (int i = 0; i < 10; i++) { int idx = (int) (Math.random() * contents.length); content.append(contents[idx]); } String[] imgs = {"/Upload/appUpload/58c7b315cb39f.jpg", "/Upload/appUploa/58cb467a69873.jpg", "/Upload/appUpload/58afff0e99432.png", "/Upload/appUpload/58b545539eb80.jpg", "/Upload/appUpload/58b55d7c9e281.JPG", }; StringBuffer img = new StringBuffer(); for (int i = 0; i < (int) (Math.random() * 4); i++) { int lucky = (int) (Math.random() * 2); if (lucky == 1) { int idx = (int) (Math.random() * imgs.length); img.append(imgs[idx]); img.append(","); } } String imgStr = ""; if (StringUtils.isNotBlank(img)) { imgStr = img.substring(0, img.length()-1); } String param = "{\"req\":{\"userId\":xxxxxx}," + "\"data\":{"\"fbType\":" + type + ",\"fbContent\":\""+content.toString()+ "\",\"fbPic\":\""+imgStr+"\"}}"; String rst = HttpRequest.sendPost(url, param); System.out.println("TIME--"+ System.currentTimeMillis() + " result:" + rst); } }
(程式碼裡的引數地址等我已做了隱藏,json格式可能不準確了,無所謂)
接下來上Python程式碼:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import random
import urllib
import urllib.request
import time
def postFeedBack():
url = "http://111.111.111.111:8080/xxxx/post"
type = int(random.uniform(1,5))
contents = ["-中文測試-,","-English Test-,"," [email protected]#$%,"," "]
content = "haojianxiang test:"
for i in range(0,10):
content += random.choice(contents)
img = ""
imgs = ["/Upload/58c7b315cb39f.jpg",
"/Upload/58cb467a69873.jpg",
"/Upload/58afff0e99432.png",
"/Upload/58b545539eb80.jpg",
"/Upload/58b55d7c9e281.JPG"]
for i in range(0,3):
lucky = int(random.uniform(0,2))
if lucky == 1:
img += random.choice(imgs)
img += ","
img = img[:-1]
data = "{\"req\":{\"userId\": xxx},"
data += "\"data\":{
data += "\"fbType\":"
data += str(type)
data += ",\"fbContent\":\""
data += content
data += "\",\"fbPic\":\""
data += img
data += "\"}}"
pdata = bytes(data,encoding="utf-8")
f = urllib.request.urlopen(url,pdata)
result = f.read()
result = result.decode('UTF-8')
print(result)
if __name__ == "__main__":
while True:
st = int(random.uniform(600,1800))
print("sleep:",st)
time.sleep(st)
postFeedBack()
Python的寫法確實很簡潔高效(java程式碼裡post的邏輯,我還是呼叫了自己的一個工具類,實際程式碼要更多),今後打算把Python作為優先指令碼語言,處理簡單問題很快。
相關推薦
Python學習記錄-----批量傳送post請求
昨天學了一天的Python(我的生產語言是java,也可以寫一些shell指令碼,算有一點點基礎),今天有一個應用場景,就正好練手了。 這個功能之前再java裡寫過,比較粗糙,原來是在我本機跑的,今天老大要求要隨時保持請求,就用Python改寫了下,省的又把一個有跟多雜項的
Python讀取Excls檔案傳送post請求
import xlrd import json import requests path=r'C:\Users\wconcept\Desktop\path'; #開啟的Excls data=xlrd.open_workbook(path) nums=len(data.she
Java學習--HttpURLConnection傳送post請求
import java.io.*; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; /**
Python-for迴圈迭代讀取多個引數,傳送POST請求
本來想用java來寫批量新增裝置到IOT平臺的,但是,想嘗試用Python指令碼寫一下,就請教一下朋友,使用for k,v in 來讀取多個引數,實現用POST請求 批量新增的功能 #!/usr/
python使用scrapy傳送post請求的坑
使用 requests 傳送 post 請求 先來看看使用requests來發送post請求是多少好用,傳送請求 Requests 簡便的 API 意味著所有 HTTP 請求型別都是顯而易見的。 例如,你可以這樣傳送一個 HTTP POST 請求: >
介面自動化之requests學習(三)--傳送post請求
想要用requests方法呼叫post請求,首先我們要有一個post介面,我們選擇人人網登入介面來練習 1.開啟人人網的登入頁面,獲取登入的url及傳送的引數 2.獲取到登入介面url及引數後,編寫程式碼 #!usr/bin/env python #-*- codi
python傳送post請求上傳檔案,無法解析上傳的檔案
前言 近日,在做介面測試時遇到一個奇葩的問題。 使用post請求直接通過介面上傳檔案,無法識別檔案。 遇到的問題 以下是抓包得到的資訊: 以上請求是通過Postman直接傳送請求的。 在這裡可以看到訊息頭裡包含:Access-Token和Content-Type 因此在在使用python直接
Python 使用requests傳送POST請求
一個http請求包括三個部分,為別為請求行,請求報頭,訊息主體,類似以下這樣: 請求行 請求報頭 訊息主體 HTTP協議規定post提交的資料必須放在訊息主體中,但是協議並沒有規定必須使用什麼編碼方式。服務端通過是根據請求頭中的Content-Type欄位來獲
Python程式碼傳送post請求介面測試
參考程式碼 # coding:utf-8 import requests url = "https://passport.cnblogs.com/user/signin" # 介面地址 # 訊息頭資料 headers = { 'Connecti
Python中request傳送post請求傳遞json引數的問題
昨天遇到了一個奇怪的問題,在Python中需要傳遞dict引數,利用json.dumps將dict轉為json格式用post方法發起請求:params = {"score":{"gt":"80", "lt":"90"}} request.post(url, json.dump
Python構造傳送POST請求
Python2.7 程式碼示例如下: def post(): url = "http://127.0.0.1:8000/login.jsp" postDict = {
Python 中request以json形式傳送post請求
一個http請求包括三個部分,為別為請求行,請求報頭,訊息主體,類似以下這樣: 請求行 請求報頭 訊息主體 以json串提交資料,編碼格式:application/json 舉例如下: 可以將一json串傳給requests.post()的data引數 #
Python學習記錄-socket編程
pythonPython學習記錄-socket編程學習 python socketPython學習記錄-socket編程1. OSI七層模型詳解2. Python socket3. socket()函數4. TCP socket通信流程5. Python Internet 模塊1. OSI七層模型詳解以上圖見
Python學習記錄day5
process its 定義 return 不能 自己 多層裝飾器 環比 方式 1.多層裝飾器 多層裝飾器的原理是,裝飾器裝飾函數後,其實也是一個函數,這樣又可以被裝飾器裝飾。 編譯是從下至上進行的,執行時是從上至下進行。 #!/usr/bin/env python #
python學習記錄三
pri data open 對稱 位置 sleep col pytho -- 一、集合: list_1 = [1,4,5,7,3,6,7,9] list_1 = set(list_1) list_2 = set([2,6,0,66,22,8,4]) #交集 list_
Python接口自動化基礎---post請求
.post openapi 在北京 request pen user class pytho http 常見的post提交數據類型有以下兩種: 第一種:application/json ,這是常見的json格式,格式如下:{"input1":"xxx","input2":"
Python學習記錄
安裝 utm tro ont edi exploit blank char str 下載安裝 windows系統下Python環境的搭建 開發工具 PyCharm 一次獲得所有PYTHON工具 Python學習記錄
python 學習記錄一
python 每天學習筆記#!/usr/bin/pytholn# -*- coding: UTF-8 -*-import mathimport sysdef print_13(): #for i in range(10): man_age = int(raw_input(‘enter input age:\
第一天Python學習記錄
clas 也有 python 開始 眼界 大數 log 設備 朋友 之前在學習大數據的時候接觸過Python基礎,今天開始系統學習Python開發知識了,開發基礎,主要是對課程的介紹,Alex侃侃而談,使我眼界大開,特別是看到美國的一些自動化設備的使用率比國內要普及很多,雖
第五天Python學習記錄
學習記錄 pre eve 記錄 語句 pytho spa 結束 就是 while循環 #第50次不打印,第60-80次打印對應值的平方 1 count = 0 2 3 while count <= 100: 4 if count == 50: