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使用requests发送POST请求实例代码
  • Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
  • 利用python模拟实现POST请求提交图片的方法
  • Python 使用requests模块发送GET和POST请求的实现代码
  • python通过get,post方式发送http请求和接收http响应的方法
  • python使用urllib2提交http post请求的方法
(0)

相关推荐

  • Python 使用requests模块发送GET和POST请求的实现代码

    ①GET # -*- coding:utf-8 -*- import requests def get(url, datas=None): response = requests.get(url, params=datas) json = response.json() return json 注:参数datas为json格式 ②POST # -*- coding:utf-8 -*- import requests def post(url, datas=None): response = re

  • Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能

    本文实例讲述了Python实现可设置持续运行时间.线程数及时间间隔的多线程异步post请求功能.分享给大家供大家参考,具体如下: #coding=utf8 ''' random.randint(a, b):用于生成一个指定范围内的整数. 其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b random.choice(sequence):从序列中获取一个随机元素 参数sequence表示一个有序类型(列表,元组,字符串) ''' import httplib,json im

  • python使用urllib2提交http post请求的方法

    本文实例讲述了python使用urllib2提交http post请求的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python #coding=utf-8 import urllib import urllib2 def post(url, data): req = urllib2.Request(url) data = urllib.urlencode(data) #enable cookie opener = urllib2.build_opener(urllib

  • python通过get,post方式发送http请求和接收http响应的方法

    本文实例讲述了python通过get,post方式发送http请求和接收http响应的方法.分享给大家供大家参考.具体如下: 测试用CGI,名字为test.py,放在apache的cgi-bin目录下: #!/usr/bin/python import cgi def main(): print "Content-type: text/html\n" form = cgi.FieldStorage() if form.has_key("ServiceCode") a

  • 利用python模拟实现POST请求提交图片的方法

    本文主要给大家介绍的是关于利用python模拟实现POST请求提交图片的方法,分享出来供大家参考学习,下面来一看看详细的介绍: 使用requests来模拟HTTP请求本来是一件非常轻松的事情,比如上传图片来说,简单的几行代码即可: import requests files = {'attachment_file': ('1.png', open('1.png', 'rb'), 'image/png', {})} values = {'next':"http://www.xxxx.com/xxx

  • Python使用requests发送POST请求实例代码

    本文研究的主要是Python使用requests发送POST请求的相关内容,具体介绍如下. 一个http请求包括三个部分,为别为请求行,请求报头,消息主体,类似以下这样: 请求行 请求报头 消息主体 HTTP协议规定post提交的数据必须放在消息主体中,但是协议并没有规定必须使用什么编码方式.服务端通过是根据请求头中的Content-Type字段来获知请求中的消息主体是用何种方式进行编码,再对消息主体进行解析.具体的编码方式包括: application/x-www-form-urlencode

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

    昨天学了一天的Python(我的生产语言是java,也可以写一些shell脚本,算有一点点基础),今天有一个应用场景,就正好练手了. 这个功能之前再java里写过,比较粗糙,原来是在我本机跑的,今天老大要求要随时保持请求,就用Python改写了下,省的又把一个有跟多杂项的jar包传到服务器,省空间又不乱,而且好读. 先附上java代码: package xxxxxx.base; import java.util.Random; import org.apache.commons.lang3.St

  • Python批量修改图片分辨率的实例代码

    前言:处理图片需要,需把图片都转换成1920*1280的大小, python实现很方便,需要导入图片处理的Image包和匹配的glob包,很简单,代码如下: img_path = glob.glob("D:/chosed/*.jpg") path_save = "D:/closedd" for file in img_path: name = os.path.join(path_save, file) im = Image.open(file) im.thumbna

  • python批量处理txt文件的实例代码

    通过python对多个txt文件进行处理 读取路径,读取文件 获取文件名,路径名 对响应的文件夹名字进行排序 对txt文件内部的数据相应的某一列/某一行进行均值处理 写入到事先准备好的Excel文件中 关闭Excel文件 #import numpy as np import pandas as pd import os folder = 'D:/log/A190820C31N82' def all_files_in_a_folder_iter(folder): import os for roo

  • python实现发送带附件的邮件代码分享

    具体代码如下: from django.template import loader from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.header import Header import smtplib import traceback class SendEmail(object):     """     发送html邮件    

  • PHP利用curl发送HTTP请求的实例代码

    cURL 函数概述 PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯. libcurl目前支持http.https.ftp.gopher.telnet.dict.file和ldap协议.libcurl同时也支持HTTPS认证.HTTP POST.HTTP PUT. FTP 上传(这个也能通过PHP的FTP扩展完成).HTTP 基于表单的上传.代理.cookies和用户名+密码的认证. PHP中使用cURL实现Get和Post请

  • Java实现批量发送带附件的邮件代码

    目录 前言 实体类(注意注释) 实现类 方法中调用,详情如下: 总结 前言 新功能上线时要经常发包到测试或生产服务器进行模块部署,但由于安全限制只能通过邮件传输小于10M的附件这种方式把jar包上传到服务器.所以往往要发送几十个邮件手动发送比较麻烦,偷懒写了个粘贴即用的Demo,如有不足,请多指教! 实体类(注意注释) 代码详情如下: package Email; /* * 参数实体类 * */ public class EmailParameter { //发信邮箱 private Strin

  • 如何用python批量发送工资条邮件

    目录 思路: 总结反思: 工资excel表格格式如下所示: 使用python批量给每位员工发送工资条信息,格式如下: 思路: 首先是加载excel,获取当前sheet表格 salay = load_workbook('大唐建设集团-2022年5月工资.xlsx', data_only=True) ws = salay.active 登录所使用的发件邮箱服务器 # 登录邮箱服务器 smtp_obj = smtplib.SMTP_SSL('smtp.qq.com', 465) # smtp_obj.

  • Python批量改变图片名字的示例代码

    目录 一.系统自带的快捷改名 二.用Python按要求改名 三.在原有的图片上进行修改 总结 一.系统自带的快捷改名 1.打开对应的图片文件 2.全选后右击重命名 3.输入:Cat 注意: 默认你输入的Cat与(1)之间有一个空格 二.用Python按要求改名 1.代码如下: import os.path def rename(img_folder,num): for img_name in os.listdir(img_folder): # os.listdir(): 列出路径下所有的文件 #

  • Python requests发送post请求的一些疑点

    前言 在Python爬虫中,使用requests发送请求,访问指定网站,是常见的做法.一般是发送GET请求或者POST请求,对于GET请求没有什么好说的,而发送POST请求,有很多朋友不是很清楚,主要是因为容易混淆 POST提交的方式 .今天在微信交流群里,就有朋友遇到了这种问题,特地讲解一下. 在HTTP协议中,post提交的数据必须放在消息主体中,但是协议中并没有规定必须使用什么编码方式,从而导致了 提交方式 的不同.服务端根据请求头中的 Content-Type 字段来获知请求中的消息主体

  • React Native 使用Fetch发送网络请求的示例代码

    我们在项目中经常会用到HTTP请求来访问网络,HTTP(HTTPS)请求通常分为"GET"."PUT"."POST"."DELETE",如果不指定默认为GET请求. 在项目中我们常用到的一般为GET和POST两种请求方式,针对带参数的表单提交这类的请求,我们通常会使用POST的请求方式. 为了发出HTTP请求,我们需要使用到 React Native 提供的 Fetch API 来进行实现.要从任意地址获取内容的话,只需简单地

随机推荐