API ile Kasada başlıklarını alın
www.ticketmaster.com üzerindeki tam HTTPS URL'si için bir KasadaTask isteyin, ardından döndürülen başlıkları hedef isteğinizde kullanın. Bağımsız Kasada şu anda bu ana makineyi destekler.
Bu sayfada
Başlıkları isteyin
Resmî SDK ile Python 3.10+ veya Node.js 22+ kullanın. SDK'yı resmî indirmelerden yükleyin.
SOLVETHREE_API_KEY değerini çalışma alanınızın API anahtarına, SOLVETHREE_PROXY değerini ise proxy URL'nize ayarlayın. API anahtarının gizli kalması için bunu sunucuda çalıştırın. url değerini desteklenen ana makinedeki amaçlanan HTTPS URL'siyle değiştirin.
import os
from uuid import uuid4
from solvethree import Solvethree
client = Solvethree(os.environ["SOLVETHREE_API_KEY"])
request = {
'type': 'KasadaTask',
'url': 'https://www.ticketmaster.com/',
"proxy": os.environ["SOLVETHREE_PROXY"],
"requestId": str(uuid4()),
}
result = client.solve(request, timeout=180)
headers = result["solution"]["headers"]
print("Ready task:", result["id"])import { randomUUID } from 'node:crypto';
import { Solvethree } from '@solvethree/sdk';
const client = new Solvethree({ apiKey: process.env.SOLVETHREE_API_KEY });
const request = {
type: 'KasadaTask',
url: 'https://www.ticketmaster.com/',
proxy: process.env.SOLVETHREE_PROXY,
requestId: randomUUID(),
};
const result = await client.solve(request, { timeoutMs: 180_000 });
const headers = result.solution.headers;
console.log('Ready task:', result.id);Her iki örnek de tek bir görev oluşturan ve görev hazır olana kadar durumunu sorgulayan veya hata üreten solve çağrısını yapar. Sonraki bölüm, döndürülen başlıkları hedefe gönderir.
Görevde type, url, tek bir proxy ve isteğe bağlı bir requestId sağlanır. Özel tarayıcı kimliği alanları eklemeyin: çözümde döndürülen kimliği kullanın.
Döndürülen başlıkları hedefe gönderin
{
"id": "example-kasada",
"status": "ready",
"solution": {
"headers": {
"x-kpsdk-ct": "EXAMPLE_HEADER_VALUE",
"x-kpsdk-cd": "EXAMPLE_HEADER_VALUE"
},
"userAgent": "EXAMPLE_USER_AGENT",
"secChUa": "EXAMPLE_CLIENT_HINTS"
}
}solution.headers nesnesinin tamamını kopyalayın. User-Agent ve sec-ch-ua değerlerini sonuçtan ayarlayın ve çözümlemedekiyle aynı proxy'yi kullanın:
# Continue after the Kasada solve. Install requests separately: pip install requests.
import requests
solution = result["solution"]
headers = {name: value for name, value in solution["headers"].items()
if name.lower() not in {"user-agent", "sec-ch-ua"}}
headers.update({"User-Agent": solution["userAgent"], "sec-ch-ua": solution["secChUa"]})
response = requests.get(
request["url"], headers=headers,
proxies={"http": request["proxy"], "https": request["proxy"]},
timeout=30, allow_redirects=False,
)
print("Target HTTP status:", response.status_code)// Continue after the Kasada solve. Install undici separately: npm install undici@7.
import { fetch, ProxyAgent } from 'undici';
const targetHeaders = new Headers(result.solution.headers);
targetHeaders.set('user-agent', result.solution.userAgent);
targetHeaders.set('sec-ch-ua', result.solution.secChUa);
const dispatcher = new ProxyAgent(request.proxy);
try {
const response = await fetch(request.url, {
dispatcher, headers: targetHeaders, redirect: 'manual',
signal: AbortSignal.timeout(30_000),
});
console.log('Target HTTP status:', response.status);
await response.arrayBuffer();
} finally {
await dispatcher.close();
}Bu devam örnekleri Python'da requests, Node.js'te ise undici gerektirir. Görevdeki tam URL'ye istek gönderir ve çakışan tarayıcı başlıklarını değiştirirler. Hedefinizin gerektirdiği diğer uygulama başlıklarını veya oturum verilerini koruyun.
proxyCandidates kullanıyorsanız hedef isteği göndermeden önce successful_proxy veya successfulProxy ile başarılı proxy'yi seçin. Tek proxy kullanan örnekler Python'da request["proxy"], Node.js'te ise request.proxy değerini yeniden kullanır.
Gönderimden sonra hedefin yanıtını kontrol edin. 403 durumunda, hangi isteğin reddedildiğini kontrol etmek için Ticketmaster sorun giderme kılavuzunu kullanın.
Bekleme ve hatalar
solve() durum sorgulamayı sizin yerinize yapar. Görev kimliğini hemen almak için sıfır bekleme süresiyle create_task veya createTask kullanın, ardından görev ready veya failed durumuna ulaşana kadar bu kimlikle sonucu alın.
Doğrudan API kullanımında Kasada görevi oluşturma işlemi varsayılan olarak 75 saniyeye kadar bekler. HTTP zaman aşımınızı bu bekleme süresinden uzun ayarlayın veya ?waitMs=0 kullanıp durumu sorgulayın. İstek sırası için görev durumu sorgulama ve zaman aşımları bölümüne bakın.
Görev başarısız olduğunda durum sorgulamayı durdurun ve errorCode ile error alanlarını inceleyin. Başarısız çözümlemelerin ücreti iade edilir. Oluşturma işlemi zaman aşımına uğrarsa işlemi kurtarırken aynı requestId değerini ve girdileri koruyun; yeni bir kimlik, ücretlendirilen başka bir çözümleme oluşturabilir.
Kaynaklar ve API referansı
İlk görevinizi çalıştırın.
$5 çalışma alanı kredisiyle başlayın.