Python批量发送post请求的实现代码
2019/7/15 0:48:57
本文主要是介绍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-,","~!@#$%^&*()_;:'-\"<>?/|\\-,"," "}; String[] contents = {"-中文测试-,","-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); } }
(代码里的参数地址等我已做了隐藏,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-,","~!@#$%,"," "] 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请求的实现代码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python