apiMethod.py 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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 requests
  10. import os
  11. import logging
  12. import json
  13. reload(sys)
  14. sys.setdefaultencoding('utf-8')
  15. def post(url, header, request_parameter_type='raw', data=None, filePath=None, file_key='file'):
  16. """
  17. post请求
  18. """
  19. if request_parameter_type == 'form-data':
  20. files = {
  21. file_key: open(filePath, "rb")
  22. }
  23. try:
  24. response = requests.post(url=url, data=data, headers=header, files=files, timeout=(15, 300))
  25. except requests.exceptions.RequestException as e:
  26. logging.error(e)
  27. logging.info('url:%s,params:%s,headers:%s,files:%s' % (url, data, header, os.path.basename(filePath)))
  28. else:
  29. if header and 'Content-Type' not in header.keys():
  30. header['Content-Type'] = 'application/json'
  31. elif not header:
  32. header = {"Content-Type": "application/json"}
  33. try:
  34. response = requests.post(url=url, data=data, headers=header, timeout=(15, 300))
  35. except requests.exceptions.RequestException as e:
  36. logging.error(e)
  37. logging.info('url:%s,params:%s,headers:%s' % (url, data, header))
  38. try:
  39. logging.info('response:%s %s' % (response.status_code, json.dumps(response.json(), ensure_ascii=False)))
  40. return response.status_code, response.json()
  41. except Exception as e:
  42. logging.error(e)
  43. logging.error('response:%s %s' % (response.status_code, response.text))
  44. return response.status_code, response.text
  45. def get(url, header, data='{}'):
  46. """
  47. get请求
  48. """
  49. if header and 'Content-Type' not in header.keys():
  50. header['Content-Type'] = 'application/json'
  51. elif not header:
  52. header = {"Content-Type": "application/json"}
  53. try:
  54. response = requests.get(url=url, params=json.loads(data), headers=header, timeout=(15, 300))
  55. except requests.exceptions.RequestException as e:
  56. logging.error(e)
  57. logging.info('url:%s,params:%s,headers:%s' % (url, data, header))
  58. try:
  59. logging.info('response:%s %s' % (response.status_code, json.dumps(response.json(), ensure_ascii=False)))
  60. return response.status_code, response.json()
  61. except Exception as e:
  62. logging.error(e)
  63. logging.error('response:%s %s' % (response.status_code, response.text))
  64. return response.status_code, response.text
  65. def put(url, header, data=None):
  66. """
  67. put请求
  68. """
  69. if header and 'Content-Type' not in header.keys():
  70. header['Content-Type'] = 'application/json'
  71. elif not header:
  72. header = {"Content-Type": "application/json"}
  73. try:
  74. response = requests.put(url=url, data=data, headers=header, timeout=(15, 300))
  75. except requests.exceptions.RequestException as e:
  76. logging.error(e)
  77. logging.info('url:%s,params:%s,headers:%s' % (url, data, header))
  78. try:
  79. logging.info('response:%s %s' % (response.status_code, json.dumps(response.json(), ensure_ascii=False)))
  80. return response.status_code, response.json()
  81. except Exception as e:
  82. logging.error(e)
  83. logging.error('response:%s %s' % (response.status_code, response.text))
  84. return response.status_code, response.text