sendApi.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. """
  4. 根据配置发送请求
  5. Author: songjian at <songjian12@baidu.com>
  6. # Created: 2020/4/21
  7. """
  8. import sys
  9. import os
  10. import json
  11. import logging
  12. import apiMethod
  13. reload(sys)
  14. sys.setdefaultencoding('utf-8')
  15. def send_by_file(request_type, parameter_type, url, headers, parameter, file_path, file_key='file'):
  16. """
  17. 读取配置文件发送请求
  18. """
  19. result_list = []
  20. with open(file_path, 'r') as lines:
  21. for line in lines:
  22. if parameter_type == 'form-data':
  23. result = apiMethod.post(url=url, header=headers,
  24. request_parameter_type='form-data',
  25. data=parameter, filePath=line.strip().encode('utf-8'), file_key=file_key)
  26. elif request_type == 'post':
  27. result = apiMethod.post(url=url, header=headers,
  28. data=line.strip().encode('utf-8'))
  29. elif request_type == 'get':
  30. result = apiMethod.get(url=url, header=headers,
  31. data=line.strip().encode('utf-8'))
  32. result_list.append(result)
  33. return result_list
  34. def send_request(data):
  35. """
  36. 发送请求
  37. """
  38. url = ''
  39. result = []
  40. try:
  41. if 'http' not in data["host"]:
  42. url = 'http://'
  43. url += data["host"] + data["address"]
  44. except KeyError:
  45. logging.error(KeyError)
  46. if data['para_file'] or data['parameter_type'] == 'form-data':
  47. result = send_by_file(data['request_type'].lower(), data['parameter_type'],
  48. url, data['headers'], data['parameter'], data['parameter_path'], data['file_key'])
  49. else:
  50. if data['request_type'].lower() == 'get':
  51. result.append(
  52. apiMethod.get(url=url, header=data['headers'],
  53. data=json.dumps(data['parameter'], ensure_ascii=False).encode('utf-8')))
  54. elif data['request_type'].lower() == 'post':
  55. result.append(
  56. apiMethod.post(url=url, header=data['headers'],
  57. data=json.dumps(data['parameter'], ensure_ascii=False).encode('utf-8')))
  58. elif data['request_type'].lower() == 'put':
  59. result.append(
  60. apiMethod.put(url=url, header=data['headers'],
  61. data=json.dumps(data['parameter'], ensure_ascii=False).encode('utf-8')))
  62. return result