client_test.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. import requests
  2. import json
  3. class OCRClient:
  4. def __init__(self, base_url):
  5. self.base_url = base_url
  6. def detect_barcode(self, image_path):
  7. url = f"{self.base_url}/detect_barcode"
  8. with open(image_path, 'rb') as f:
  9. files = {'file': f}
  10. response = requests.post(url, files=files)
  11. return response.json()
  12. def get_barcode(self, image_path=None, message=None):
  13. url = f"{self.base_url}/get_barcode"
  14. data = {}
  15. files = {}
  16. if image_path:
  17. with open(image_path, 'rb') as f:
  18. files = {'file': f}
  19. if message:
  20. data = {'message': json.dumps(message)}
  21. response = requests.post(url, data=data, files=files)
  22. return response.json()
  23. def search_info(self, search_params):
  24. url = f"{self.base_url}/search"
  25. response = requests.post(url, json=search_params)
  26. return response.json()
  27. def get_matio_id(self, image_path):
  28. url = f"{self.base_url}/get_matio_id"
  29. with open(image_path, 'rb') as f:
  30. files = {'file': f}
  31. response = requests.post(url, files=files)
  32. return response.json()
  33. def show_info(self, id):
  34. url = f"{self.base_url}/show"
  35. data = {'id': id}
  36. response = requests.post(url, json=data)
  37. return response.json()
  38. def history_info(self, id):
  39. url = f"{self.base_url}/history"
  40. data = {'id': id}
  41. response = requests.post(url, json=data)
  42. return response.json()
  43. # 使用示例
  44. if __name__ == "__main__":
  45. client = OCRClient("http://localhost:8000") # 替换为实际的服务器地址和端口
  46. # 检测条形码
  47. barcode_result = client.detect_barcode("path/to/image.jpg")
  48. print("条形码检测结果:", barcode_result)
  49. # 获取条形码信息
  50. barcode_info = client.get_barcode(image_path="path/to/image.jpg")
  51. print("条形码信息:", barcode_info)
  52. # 搜索信息
  53. search_params = {
  54. "barcode_type": "EAN13",
  55. "matio_id": "123456",
  56. "pageNum": 1,
  57. "pageSize": 10
  58. }
  59. search_result = client.search_info(search_params)
  60. print("搜索结果:", search_result)
  61. # 获取matio_id
  62. matio_id_result = client.get_matio_id("path/to/image.jpg")
  63. print("Matio ID 结果:", matio_id_result)
  64. # 显示信息
  65. show_result = client.show_info("1")
  66. print("显示信息:", show_result)
  67. # 历史信息
  68. history_result = client.history_info("1")
  69. print("历史信息:", history_result)
  70. # 使用图片路径调用get_barcode
  71. barcode_info_with_image = client.get_barcode(image_path="path/to/image.jpg")
  72. print("使用图片的条形码信息:", barcode_info_with_image)
  73. # 使用message调用get_barcode
  74. message = {
  75. 'barcode': '1C3JAA57000BL',
  76. 'image_origin_path': '/clt/ocr_workspace/tmp_images/origin_images_2024_09_29-16__43__55.png',
  77. 'upload_timestamp': '2024_09_29-16__43__55',
  78. 'barcode_type': '普通吊牌'
  79. }
  80. barcode_info_with_message = client.get_barcode(message=message)
  81. print("使用message的条形码信息:", barcode_info_with_message)
  82. # 同时使用图片和message调用get_barcode
  83. barcode_info_combined = client.get_barcode(
  84. image_path="path/to/image.jpg",
  85. message=message
  86. )
  87. print("同时使用图片和message的条形码信息:", barcode_info_combined)