Python批量發(fā)送post請(qǐng)求的實(shí)現(xiàn)代碼
昨天學(xué)了一天的Python(我的生產(chǎn)語(yǔ)言是java,也可以寫一些shell腳本,算有一點(diǎn)點(diǎn)基礎(chǔ)),今天有一個(gè)應(yīng)用場(chǎng)景,就正好練手了。
這個(gè)功能之前再java里寫過(guò),比較粗糙,原來(lái)是在我本機(jī)跑的,今天老大要求要隨時(shí)保持請(qǐng)求,就用Python改寫了下,省的又把一個(gè)有跟多雜項(xiàng)的jar包傳到服務(wù)器,省空間又不亂,而且好讀。
先附上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 = {"-中文測(cè)試-,","-English Test-,","~!@#$%^&*()_;:'-\"<>?/|\\-,"," "}; String[] contents = {"-中文測(cè)試-,","-English Test-,","~!@#$%,"," "}; 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); } }
(代碼里的參數(shù)地址等我已做了隱藏,json格式可能不準(zhǔn)確了,無(wú)所謂)
接下來(lái)上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 = ["-中文測(cè)試-,","-English Test-,","~!@#$%,"," "] 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的寫法確實(shí)很簡(jiǎn)潔高效(java代碼里post的邏輯,我還是調(diào)用了自己的一個(gè)工具類,實(shí)際代碼要更多),今后打算把Python作為優(yōu)先腳本語(yǔ)言,處理簡(jiǎn)單問(wèn)題很快。
相關(guān)文章
python 統(tǒng)計(jì)代碼行數(shù)簡(jiǎn)單實(shí)例
這篇文章主要介紹了python 統(tǒng)計(jì)代碼行數(shù)簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-05-05python使用PIL和matplotlib獲取圖片像素點(diǎn)并合并解析
這篇文章主要介紹了python使用PIL和matplotlib獲取圖片像素點(diǎn)并合并解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09關(guān)于Python下載大文件時(shí)哪種方式速度更快
這篇文章主要介紹了關(guān)于Python下載大文件時(shí)哪種方式速度更快,通常,我們都會(huì)用 requests 庫(kù)去下載,這個(gè)庫(kù)用起來(lái)太方便了,需要的朋友可以參考下2023-04-04python基于tkinter制作無(wú)損音樂(lè)下載工具(附源碼)
這篇文章主要介紹了python基于tkinter制作無(wú)損音樂(lè)下載工具(附源碼),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-03-03tensorflow官方github預(yù)訓(xùn)練模型下載方式
這篇文章主要介紹了tensorflow官方github預(yù)訓(xùn)練模型下載方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02python解決js文件utf-8編碼亂碼問(wèn)題(推薦)
這篇文章主要介紹了python解決js文件utf-8編碼亂碼問(wèn)題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-05-05PyCharm刷新項(xiàng)目(文件)目錄的實(shí)現(xiàn)
今天小編就為大家分享一篇PyCharm刷新項(xiàng)目(文件)目錄的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02