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实现网页链接提取的方法分享
Feb 25 Python
python基于windows平台锁定键盘输入的方法
Mar 05 Python
详解Python3中的Sequence type的使用
Aug 01 Python
从零开始学Python第八周:详解网络编程基础(socket)
Dec 14 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
Jan 17 Python
Python实现读取机器硬件信息的方法示例
Jun 09 Python
python读取LMDB中图像的方法
Jul 02 Python
使用python将图片格式转换为ico格式的示例
Oct 22 Python
用Python编写一个高效的端口扫描器的方法
Dec 20 Python
Python如何将将模块分割成多个文件
Aug 04 Python
python 基于wx实现音乐播放
Nov 24 Python
Python使用Turtle模块绘制国旗的方法示例
Feb 28 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实现多条件查询实例代码
2010/07/17 PHP
应用开发中涉及到的css和php笔记分享
2011/08/02 PHP
PHP中“简单工厂模式”实例代码讲解
2012/09/04 PHP
探讨PHP中OO之静态关键字以及类常量的详解
2013/06/07 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
php+curl 发送图片处理代码分享
2015/07/09 PHP
禁止直接访问php文件代码分享
2020/05/05 PHP
Extjs学习笔记之三 extjs form更多的表单项
2010/01/07 Javascript
jQuery 获取URL的GET参数值的小例子
2013/04/18 Javascript
关闭时刷新父窗口两种方法
2014/05/07 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
深入分析Javascript跨域问题
2015/04/17 Javascript
jQuery生成假加载动画效果
2016/12/01 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
2017/02/15 Javascript
HTML5实现微信拍摄上传照片功能
2017/04/21 Javascript
angularjs2 ng2 密码隐藏显示的实例代码
2017/08/01 Javascript
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
2019/10/30 Javascript
python获取标准北京时间的方法
2015/03/24 Python
简单了解python字符串前面加r,u的含义
2019/12/26 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
2020/02/07 Python
pycharm通过ssh连接远程服务器教程
2020/02/12 Python
详解HTML5常用的语义化标签
2019/09/27 HTML / CSS
英国赛车、汽车改装和摩托车零件购物网站:Demon Tweeks
2018/10/29 全球购物
香港中原电器网上商店:Chung Yuen
2019/06/26 全球购物
广州盈通面试题
2015/12/05 面试题
党支部公开承诺书
2014/03/28 职场文书
岗位廉洁从业承诺书
2014/03/28 职场文书
公司离职证明范本(汇总)
2014/09/10 职场文书
2015年保管员工作总结
2015/04/30 职场文书
2016年猴年新春致辞
2015/08/01 职场文书
职工培训工作总结
2015/08/10 职场文书
用Python简陋模拟n阶魔方
2021/04/17 Python
实战Python爬虫爬取酷我音乐
2022/04/11 Python