昨天学了一天的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批量发送post请求的实现代码相关推荐

  1. python+pytest接口自动化框架(5)-requests发送post请求

    在HTTP协议中,与get请求把请求参数直接放在url中不同,post请求的请求数据需通过消息主体(request body)中传递. 且协议中并没有规定post请求的请求数据必须使用什么样的编码方式 ...

  2. Python网络编程:使用requests.post发送POST请求

    Python网络编程:使用requests.post发送POST请求 在Python中,requests是一个强大的库,它可以用于发送HTTP请求并且处理响应.requests.post()函数是这个 ...

  3. python绘制蚊香形_Python requests发送post请求的一些疑点

    前言 在Python爬虫中,使用requests发送请求,访问指定网站,是常见的做法.一般是发送GET请求或者POST请求,对于GET请求没有什么好说的,而发送POST请求,有很多朋友不是很清楚,主要 ...

  4. python查找多个关键词_Python批量查询关键词微信指数实例方法

    教你用Python批量查询关键词微信指数. 前期准备安装好Python开发环境及Fiddler抓包工具.前期准备安装好Python开发环境及Fiddler抓包工具. 首先打开Fiddler软件,点击T ...

  5. python调用接口requests_【python接口自动化】- 使用requests库发送http请求

    前言:什么是Requests ?Requests 是⽤Python语⾔编写,基于urllib,采⽤Apache2 Licensed开源协议的 HTTP 库.它⽐ urllib 更加⽅便,可以节约我们⼤ ...

  6. Python开发技巧:scrapy-redis爬虫如何发送POST请求

    同学们在使用scrapy-redis分布式爬虫框架开发的时候会发现,其默认只能发送GET请求,不能直接发送POST请求,这就导致我们在开发一些爬虫工具的时候出现问题,那么如何才能让scrapy-red ...

  7. python token post403原因_Django中ajax发送post请求 报403错误CSRF验证失败解决方案

    前言 今天学习Django框架,用ajax向后台发送post请求,直接报了403错误,说CSRF验证失败:先前用模板的话都是在里面加一个 {% csrf_token %} 就直接搞定了CSRF的问题了 ...

  8. tab 触发ajax请求,防止重复发送ajax请求的思索

    原标题:防止重复发送ajax请求的思索 防止重复发ajax请求是平时开发中遇到频次较高的问题了.我通常解决方案有如下几种, 1.UI限制 点击完按钮后,就禁用按钮, 并开启显示等待动画,收到服务器的成 ...

  9. php 伪造请求连接,phpcurl发送伪造请求

    这篇文章主要介绍了php curl 发送伪造请求 ,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧public function curlHtml(){ //防止超时 set_time_li ...

最新文章

  1. Python链接MySQL
  2. 主成分分析(PCA)和独立成分分析(ICA)相关资料
  3. Py之pycocotools:pycocotools库的简介、安装、使用方法之详细攻略
  4. AUTOSAR从入门到精通100讲(三十五)-Lin通信协议栈分析三部曲LinTrcv配置及代码分析
  5. 小程序 || 语句_C ++开关语句| 查找输出程序| 套装1
  6. git grade 版本下载及安装
  7. 百度Apollo放出豪言:下半年每月上市一款新车
  8. python基础--接口与归一化设计、封装、异常、网络编程
  9. Orabbix监控oracle
  10. HoloLens2开发笔记-使用UWP原生MediaCapture解决图像捕获与WebRTC视频流冲突问题
  11. 2015年12月7号工作日志---------------------赵鑫
  12. Segmentation笔记4-Boundary-Aware Network for Fast and High-Accuracy Portrait Segmentation
  13. 移动信号e经常无服务器,手机信号从4G变成E,是什么情况?移动客服作出解答...
  14. mac下使用自带的bash或Cyberduck软件链接服务器
  15. CCF201609-3 炉石传说 (100分)
  16. 双十一特辑:Python采集商品数据,实时了解商品价格
  17. 我的大学 --- 郭天祥【1】
  18. request 使用方法
  19. 【MySQL基础知识】查询、过滤数据关键字
  20. qwebkit的套壳开发

热门文章

  1. 敲黑板划重点!「PV,UV流量预测算法大赛」明日结果提交最后1天!
  2. 设计世界上最小的 Arduino!
  3. Facebook 发币 Libra;谷歌十亿美金为穷人造房;第四代树莓派 Raspberry Pi 4 发布 | 开发者周刊...
  4. 锤子濒危、金立倒闭,华米 OV 们如何艰难求生?
  5. 恶犬秒变萌汪:东京大学开源“治愈系” GAN 图片拼贴工具 | 技术头条
  6. 特斯拉被曝储存大量未加密个人数据,你的隐私正在“裸奔”!
  7. 战不胜抖音的腾讯微视,即将被判“死刑”? | 畅言
  8. 福利 | 干大事,成大事,2018 幸福如是!
  9. 失去了商标品牌的迅雷大数据,变成了摸金狗?
  10. Java多态向上转型作用,热度飙升!