提交 2543d037 编写于 作者: View Design's avatar View Design

Auto Commit

上级 0520122c
import streamlit as st
from streamlit_option_menu import option_menu
import requests
import datetime
import json
# 设置Streamlit应用程序的标题
st.set_page_config(page_title="app name", layout="wide")
st.set_page_config(page_title="HTTP请求模拟工具", page_icon="🚀")
menu1="菜单1"
menu2="菜单2"
st.markdown("""
# HTTP请求模拟工具
### 功能点:
1. 发送HTTP请求:用户输入请求URL、请求方法和请求头信息,工具对请求进行封装后发送HTTP请求。
2. 查看响应结果:工具接收到服务器响应后,将响应结果展示给用户以便于查看。
3. 关注请求细节:用户可以查看请求发送的细节信息,包括请求发送时间、请求耗时、请求大小等。
---
""")
with st.sidebar:
menu = option_menu("菜单", [menu1, menu2],
icons=['house', "list-task"],
menu_icon="cast", default_index=0)
url = st.text_input("请输入请求URL:", value="https://e.weather.com.cn/p/site/aqifc1h?areaid=101010300")
method = st.selectbox("请选择请求方法:", ["GET", "POST", "PUT", "DELETE"])
headers = st.text_area("请输入请求头信息,格式如:{'key1': 'value1', 'key2': 'value2'}")
def main():
if menu == menu1:
st.subheader(f"{menu1}")
if menu == menu2:
st.subheader(f"{menu2}")
if __name__ == '__main__':
main()
if st.button("发送请求"):
if headers:
try:
headers = eval(headers)
except Exception as e:
st.error("请求头信息格式有误,请确认输入的是字典格式,例如:{'key1': 'value1', 'key2': 'value2'}")
headers = None
else:
headers = None
start_time = datetime.datetime.now()
try:
response = requests.request(method=method, url=url, headers=headers)
end_time = datetime.datetime.now()
time_taken = end_time - start_time
size = len(response.content)
st.subheader("响应结果:")
try:
pretty_json = json.loads(response.text)
st.json(pretty_json)
except:
st.text(response.text)
st.subheader("请求细节:")
st.write(f"请求方法:{method}")
st.write(f"请求URL:{url}")
st.write(f"请求头:{headers}")
st.write(f"请求发送时间:{start_time}")
st.write(f"请求耗时:{time_taken}")
st.write(f"请求大小:{size} bytes")
except Exception as e:
st.error(f"请求发送失败:{e}")
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册