You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调用eLabFTW API返回404错误,请求协助解决

解决eLabFTW API调用返回404错误的问题

你在调用eLabFTW的API创建实验时收到404响应,以下是排查和修复方案:

原代码

import os
import requests
import json

requests.packages.urllib3.disable_warnings()

#########################
#         CONFIG        #
#########################

url = "http://localhost:8890/api/v2/experiments".format(host=host)
API_KEY = 'a2cmykeyc19be8'


headers = {'Authorization' : API_KEY}

data = {'title': 'test versuch','body':'test'}

response = requests.post(url,headers=headers, verify=False)

print(response)

核心错误分析

  • URL拼接异常:代码中使用format(host=host)但未定义host变量,多余的格式化操作可能导致URL解析错误;同时需确认eLabFTW服务确实运行在localhost:8890,地址或端口错误会直接返回404。
  • 权限头格式错误:eLabFTW API要求Authorization头格式为ApiKey YOUR_API_KEY,直接传入密钥不符合接口规范。
  • 请求数据未正确序列化:POST创建实验时需以JSON格式传递数据,原代码未指定序列化方式,服务器无法解析请求体。

修正后的代码

import requests

requests.packages.urllib3.disable_warnings()

# 配置项
API_URL = "http://localhost:8890/api/v2/experiments"
API_KEY = 'a2cmykeyc19be8'

# 符合要求的权限头
headers = {'Authorization': f'ApiKey {API_KEY}'}

# 实验数据
experiment_data = {
    'title': 'test versuch',
    'body': 'test'
}

# 使用json参数自动完成数据序列化与Content-Type设置
response = requests.post(API_URL, headers=headers, json=experiment_data, verify=False)

# 打印详细响应信息
print(f"状态码: {response.status_code}")
print("响应内容:")
print(response.json())

额外检查项

  1. 确认eLabFTW服务正常运行,可通过浏览器或curl测试/api/v2/experiments端点是否可访问。
  2. 检查API_KEY是否拥有创建实验的权限,权限不足可能返回403,但也需纳入排查范围。
  3. 若eLabFTW启用HTTPS,需使用https://开头的URL,测试环境自签名证书再保留verify=False。

内容的提问来源于stack exchange,提问作者Ute

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 07:12:14