lijiejie/swagger-exp

不支持接口里面有中文吗?

Opened this issue · 2 comments

$ python swagger-exp.py http://10.139.14.14:8086/v2/api-docs
[10:18:24] [OK] [API set] http://10.139.14.14:8086/v2/api-docs
[10:18:24] [POST] http://10.139.14.14:8086/user/add userVo={OBJECT_UserVo}
[10:18:24] [Request] POST http://10.139.14.14:8086/user/add
userVo={OBJECT_UserVo}
[10:18:24] [Response] Code: 415 Content-Type: application/json Content-Length: 105
[10:18:24] [POST] http://10.139.14.14:8086/area/saveArea areaVo={OBJECT_区域实体}
Traceback (most recent call last):
File "swagger-exp.py", line 108, in process_doc
scan_api(method, base_url, path, params_str)
File "swagger-exp.py", line 129, in scan_api
r = requests.post(api_url, data=_params_str, headers=headers, verify=False)
File "X:\Python27\lib\site-packages\requests\api.py", line 116, in post
return request('post', url, data=data, json=json, **kwargs)
File "X:\Python27\lib\site-packages\requests\api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "X:\Python27\lib\site-packages\requests\sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "X:\Python27\lib\site-packages\requests\sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "X:\Python27\lib\site-packages\requests\adapters.py", line 449, in send
timeout=timeout
File "X:\Python27\lib\site-packages\urllib3\connectionpool.py", line 600, in urlopen
chunked=chunked)
File "X:\Python27\lib\site-packages\urllib3\connectionpool.py", line 354, in _make_request
conn.request(method, url, **httplib_request_kw)
File "X:\Python27\lib\httplib.py", line 1042, in request
self._send_request(method, url, body, headers)
File "X:\Python27\lib\httplib.py", line 1082, in _send_request
self.endheaders(body)
File "X:\Python27\lib\httplib.py", line 1038, in endheaders
self._send_output(message_body)
File "X:\Python27\lib\httplib.py", line 886, in _send_output
self.send(message_body)
File "X:\Python27\lib\httplib.py", line 858, in send
self.sock.sendall(data)
File "X:\Python27\lib\socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 15-18: ordinal not in range(128)
[10:18:24] [process_doc error][http://10.139.14.14:8086/v2/api-docs] 'ascii' codec can't encode characters in position 15-18: ordinal not in range(128)
[10:18:24] Swagger UI Server on: http://127.0.0.1:2587
[10:18:24] Open Swagger UI with chrome
1[10:18:27] Server shutdown.27.0.0.1 - - [22/Oct/2021 10:18:27] "GET /api_summary.txt HTTP/1.1" 200 -

方便把这个文档发给我测试一下吗? 看起来是 requests.post 的时候编码有问题

a0xpg commented

在scan_api方法中,requests.post参数编码下,data=_params_str.encode("utf-8")