Docs/ELK/命令行访问es(fail).md
2022-10-18 16:59:37 +08:00

59 lines
No EOL
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

```
## 第一个参数是访问方式get/put/delete/post等第二个参数是文件或者uri字符串如/item/es/_search
## 文件中第一行为uri字符串
## 其他行合并组成一个访问的data数据
## 测试失败不识别query暂时未找到解决方法
#!/usr/bin/env python
#_*_Coding:UTF-8_*_
import requests
import sys
import json
import os
class Esdata(object):
def __init__(self, refers, header):
self.refers = refers
self.header = header
## 通过脚本参数传入,决定调用的函数
def operator(self, func):
return getattr(requests, func)
## 得到response
def getdata(self, func, uri, data):
url = self.refers + uri
if self.operator(func) in ["put", "post"]:
response = self.operator(func)(url, data=data, headers=header)
else:
response = self.operator(func)(url, params=data, headers=header)
return response
if __name__ == '__main__':
refers = 'http://127.0.0.1:9200'
header = {"content-Type": "application/json"}
# 传递参数get/put/post/delete等
methods = sys.argv[1]
d = sys.argv[2]
# 判断第二个参数是否文件
if d and os.path.isfile(d):
with open(d, 'rb') as f:
# readline函数一次读取一行这是第一行uri
uri = f.readline()
data = ''
# 其他行组成data用于传入访问链接
for line in f.readlins()[0:]:
data = data + line.strip()
else:
uri = d
data = None
# 读出的data中会把双引号转换成单引号但转换成json格式就会异常需要替换一下
data = data.replace("\'","\"")
es = Esdata(refers, header)
res = es.getdata(methods, uri, json.loads(data))
print(json.dumps(res.text, sort_keys=True, indent=4, separators=(', ', ': '), ensure_ascii=False))
```