Python批量发送post请求的实现代码


Posted in Python onMay 05, 2018

昨天学了一天的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 相关文章推荐
Python用sndhdr模块识别音频格式详解
Jan 11 Python
python 剪切移动文件的实现代码
Aug 02 Python
Python3.6实现带有简单界面的有道翻译小程序
Apr 16 Python
python 机器学习之支持向量机非线性回归SVR模型
Jun 26 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
Aug 12 Python
django中瀑布流写法实例代码
Oct 14 Python
python元组的概念知识点
Nov 19 Python
python 控制台单行刷新,多行刷新实例
Feb 19 Python
JupyterNotebook 输出窗口的显示效果调整方法
Apr 13 Python
15个Pythonic的代码示例(值得收藏)
Oct 29 Python
Scrapy实现模拟登录的示例代码
Feb 21 Python
Python可变集合和不可变集合的构造方法大全
Dec 06 Python
PyQt5 pyqt多线程操作入门
May 05 #Python
详解pyqt5 动画在QThread线程中无法运行问题
May 05 #Python
python中in在list和dict中查找效率的对比分析
May 04 #Python
Django如何配置mysql数据库
May 04 #Python
Python实现求一个集合所有子集的示例
May 04 #Python
python list是否包含另一个list所有元素的实例
May 04 #Python
Python判断两个list是否是父子集关系的实例
May 04 #Python
You might like
php中jQuery插件autocomplate的简单使用笔记
2012/06/14 PHP
php获取中文拼音首字母类和函数分享
2014/04/24 PHP
PHP中使用imagick实现把PDF转成图片
2015/01/26 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
php unicode编码和字符串互转的方法
2020/08/12 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
2017/08/25 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
2019/08/30 PHP
Jquery+ajax请求data显示在GridView上(asp.net)
2010/08/27 Javascript
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
JS编程小常识很有用
2012/11/26 Javascript
html+js实现动态显示本地时间
2013/09/21 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/10/05 Javascript
AngularJS全局scope与Isolate scope通信用法示例
2016/11/22 Javascript
JavaScript实现数值自动增加动画
2017/12/28 Javascript
vue 2.x 中axios 封装的get 和post方法
2018/02/28 Javascript
微信小程序如何利用getCurrentPages进行页面传值
2019/07/01 Javascript
vue之a-table中实现清空选中的数据
2019/11/07 Javascript
简单了解JavaScript sort方法
2019/11/25 Javascript
python插入排序算法的实现代码
2013/11/21 Python
Python基础之函数用法实例详解
2014/09/10 Python
Python将多个list合并为1个list的方法
2018/06/27 Python
python代码 FTP备份交换机配置脚本实例解析
2019/08/01 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
查看端口并杀进程python脚本代码
2019/12/17 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
python如何把字符串类型list转换成list
2020/02/18 Python
python 发送邮件的四种方法汇总
2020/12/02 Python
野兽派官方旗舰店:THE BEAST 野兽派
2016/08/05 全球购物
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
在校生自我鉴定
2014/01/23 职场文书
2014年销售部工作总结
2014/12/01 职场文书
丧事答谢词
2015/01/05 职场文书
《花钟》教学反思
2016/02/17 职场文书
Java中生成微信小程序太阳码的实现方案
2022/06/01 Java/Android