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

在Visual Studio Code中使用Python调用Marvel API时出现409冲突错误的问题咨询

Fixing the 409 Conflict Error with Marvel API in Python

Hey there! Let's break down why you're hitting that 409 Client Error: Conflict and get your Marvel API call working properly.

Why the Error Happens

Your current code has two key issues that trigger the conflict:

  • You're using an invalid base URL (http(s)://gateway.marvel.com/ is just the root domain—you need to target a specific API endpoint like /v1/public/characters).
  • Marvel API requires authentication parameters (timestamp, public key, and a generated hash) for every request—your code doesn't include any of these, so the server rejects your request with a conflict.

Step-by-Step Fix

First, make sure you've registered for a Marvel Developer account and have your public key and private key handy (you'll get these from your account dashboard).

Then, here's the corrected code with explanations:

import requests
import json
import hashlib
import time
from pprint import pprint

# Your Marvel API keys (replace with your actual keys)
PUBLIC_KEY = "your_public_key_here"
PRIVATE_KEY = "your_private_key_here"

# Generate required authentication parameters
ts = str(time.time())  # Timestamp
hash_input = ts + PRIVATE_KEY + PUBLIC_KEY
hash_value = hashlib.md5(hash_input.encode()).hexdigest()  # MD5 hash of the combination

# Target a valid Marvel API endpoint (example: fetching popular characters)
base_url = "https://gateway.marvel.com/v1/public/characters"
params = {
    "ts": ts,
    "apikey": PUBLIC_KEY,
    "hash": hash_value,
    "limit": 5  # Optional: limit results to 5 characters
}

try:
    response = requests.get(base_url, params=params)
    response.raise_for_status()  # Check for HTTP errors
    json_data = response.json()  # Use response.json() instead of json.loads(response.text)
    pprint(json_data)
except requests.exceptions.HTTPError as err:
    print(f"HTTP Error occurred: {err}")
except Exception as err:
    print(f"Other error occurred: {err}")

Key Changes Explained

  • Authentication: We generate a timestamp, combine it with your private and public keys, then create an MD5 hash. Marvel uses this to verify your request is legitimate.
  • Valid Endpoint: We use /v1/public/characters (a common starting point)—you can swap this for other endpoints like /v1/public/comics based on what data you want.
  • Simplified JSON Parsing: response.json() is a cleaner way to load JSON data than json.loads(response.text).
  • Error Handling: Added a try-except block to catch and display errors more clearly.

Testing the Code

Replace your_public_key_here and your_private_key_here with your actual keys from the Marvel Developer portal, then run the code—you should get a valid JSON response with character data instead of the 409 error.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 13:54:09