Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wszystkie interfejsy API w wersji 3 zwracają ustandaryzowane odpowiedzi o błędach, aby ułatwić szybkie diagnozowanie i rozwiązywanie problemów. W tej sekcji opisano kody stanu HTTP, strukturę odpowiedzi na błędy i typowe scenariusze rozwiązywania problemów.
Note
Wszystkie wartości wyliczenia ciągów są bez uwzględniania wielkości liter.
kody stanu HTTP
| Kod stanu | Ma zastosowanie do | Kategoria błędów | Description | Typowe przyczyny |
|---|---|---|---|---|
| 200 | Wszystkie interfejsy API | Powodzenie | Żądanie zakończyło się pomyślnie. | - |
| 202 | Przeglądaj tylko | Zaakceptowano | Żądanie zaakceptowane do przetwarzania (przeszukiwanie na żywo). | Przeszukiwanie na żądanie jest w toku |
| 400 | Wszystkie interfejsy API | Nieprawidłowe żądanie | Nieprawidłowe parametry żądania. | Brak wymaganych pól, nieprawidłowe wartości parametrów, nieprawidłowo sformułowany kod JSON |
| 401 | Wszystkie interfejsy API | Brak autoryzacji | Uwierzytelnianie nie powiodło się lub nie powiodło się. | Nieprawidłowy klucz interfejsu API, brak nagłówka x-apikey |
| 403 | Wszystkie interfejsy API | Dostęp zabroniony | Prawidłowe poświadczenia, ale niewystarczające uprawnienia. | Klucz interfejsu API nie ma wymaganych uprawnień |
| 403 | Przeglądaj tylko | Dostęp zabroniony | Zawartość filtrowana lub wykluczona z adresu URL. | Adres URL zablokowany przez zasady lub filtrowaną zawartość |
| 404 | Przeglądaj tylko | Nie znaleziono | Nie można odnaleźć dokumentu. | Nieprawidłowy lub niedostępny adres URL |
| 410 | Wszystkie interfejsy API | Zniknęło | Wymagany protokół HTTPS. | Żądanie wykonane za pośrednictwem protokołu HTTP zamiast HTTPS |
| 415 | Wszystkie interfejsy API | Nieobsługiwany typ nośnika | Typ zawartości nie jest obsługiwany. | Brak lub niepoprawny content-type nagłówek |
| 429 | Wszystkie interfejsy API | Zbyt wiele żądań | Przekroczono limit szybkości. | Zbyt wiele żądań w przedziale czasu |
| 430 | Przeglądaj tylko | Błąd serwera | Zbyt wiele przeszukiwań na żądanie. | Nadmierne żądania przeszukiwania na żywo |
| 500 | Wszystkie interfejsy API | Wewnętrzny błąd serwera | Nieoczekiwany błąd serwera. | Tymczasowy problem z serwerem |
Struktura odpowiedzi na błędy
Wszystkie odpowiedzi na błędy są zgodne z tym schematem:
| Pole | Typ | Description |
|---|---|---|
errorCode |
ciąg | Bardziej szczegółowa kategoria błędów, która pomaga zidentyfikować typ błędu. |
errorCategory |
ciąg | Kategoria wysokiego poziomu: UserError (po stronie klienta / nie można ponowić próby) lub SystemError (po stronie serwera / ponawianie próby). |
userMessage |
ciąg | Opis błędu czytelnego dla człowieka. |
technicalDetails |
ciąg (opcjonalnie) | Dodatkowe informacje techniczne lub szczegóły weryfikacji parametrów na potrzeby debugowania. |
retryAfter |
ciąg (opcjonalnie) | Czas oczekiwania przed ponowną próbą. |
requestId |
ciąg (opcjonalnie) | Unikatowy identyfikator żądania. |
traceId |
ciąg | Identyfikator śledzenia rozproszonego na potrzeby debugowania i obsługi Microsoft. |
Note
202 Accepted odpowiedzi (np. Przeglądanie sondowania przeszukiwania na żywo) nie są odpowiedziami na błędy i nie używają powyższego schematu błędów. Mogą one nadal zawierać wartość wskazującą retryAfter , kiedy ponowić próbę żądania.
Przykładowa odpowiedź na błąd:
{
"errorCode": "HandlerInvalidInput",
"errorCategory": "UserError",
"userMessage": "Invalid input provided. Please check your request parameters.",
"technicalDetails": "Parameter validation failed: maxResults=100 exceeds maximum=50",
"requestId": "req_abc123",
"traceId": "trace_xyz789"
}
Odwołanie do kodów błędów
Błędy weryfikacji żądań
| Kod błędu | Status HTTP | Category | Description |
|---|---|---|---|
RequestInvalidFormat |
400 | UserError |
Źle sformułowana treść JSON lub nieprawidłowa struktura ładunku żądania. |
RequestInvalidMethod |
400 | UserError |
Nieprawidłowa nazwa metody lub narzędzia określona w żądaniu. |
HandlerInvalidInput |
400 | UserError |
Nieprawidłowe wartości parametrów wejściowych (np. puste zapytanie, maxResults poza zakresem [1, 50], nieprawidłowe wartości wyliczenia). |
RequestBlockedHeader |
400 | UserError |
Żądanie zawiera nagłówek debugowania/wariantu bloku (np. X-Augmentations, X-DebugOptions, X-XapHostOverride). Zamiast tego użyj udokumentowanych parametrów adresu URL (?p1=, ?debugoptions=, ?atlahostname=). |
RequestUnsupportedMediaType |
415 | UserError |
Brak nagłówka content-type lub nie application/json. |
MethodNotAllowed |
405 | UserError |
Metoda HTTP nie jest dozwolona na trasie (np. GET w punkcie końcowym TYLKO POST). |
Błędy uwierzytelniania i autoryzacji
| Kod błędu | Status HTTP | Category | Description |
|---|---|---|---|
AuthNoToken |
401 | UserError |
Wymagane jest uwierzytelnianie. Nie podano tokenu elementu nośnego ani klucza interfejsu API. |
AuthTokenParse |
401 | UserError |
Nieprawidłowy format tokenu uwierzytelniania lub analizowanie tokenu nie powiodło się. |
AuthInvalidApiKey |
401 | UserError |
Podany klucz interfejsu API jest nieprawidłowy lub nie został rozpoznany. |
AuthenticationFailed |
401 | UserError |
Błąd uwierzytelniania ogólnego. |
AuthExpiredTrial |
401 | UserError |
Okres próbny wygasł. Uaktualnij klucz. |
AuthMissingEntryId |
400 | UserError |
Brak tożsamości aplikacji/identyfikatora wpisu w kontekście żądania. |
AuthAppIdSelectionRequired |
400 | UserError |
Tożsamość jest mapowana na wiele aplikacji. Określ aplikację docelową przy użyciu parametru APPID zapytania. Zobacz Wywoływanie więcej niż jednego identyfikatora AppID. |
AuthUnauthorizedEntryId |
401 | UserError |
Nieautoryzowany identyfikator wpisu. Nie można rozpoznać tożsamości aplikacji lub parametr zapytania został wysłany przy użyciu uwierzytelniania klucza interfejsu APPID API. |
AuthUnauthorizedAppId |
403 | UserError |
Określona APPID wartość nie jest skojarzona z twoją tożsamością. |
AuthUnauthorizedService |
403 | UserError |
Obiekt wywołujący jest uwierzytelniany, ale nieautoryzowany w celu uzyskania dostępu do żądanej usługi/pionowej. |
AuthBatchEndpointRequired |
403 | UserError |
Aplikacja jest wymagana do korzystania z punktu końcowego wsadowego (X-FD-Batch: 1) na potrzeby wyszukiwania w Internecie. |
AuthMcpWebForbidden |
403 | UserError |
Aplikacja nie może używać narzędzia MCP web . |
AuthContentFormatForbidden |
403 | UserError |
Ta aplikacja ma dostęp tylko do fragmentów. Użyj polecenia contentFormatpassage. Zobacz Fragmenty i formaty zawartości. |
Błędy ograniczania szybkości
| Kod błędu | Status HTTP | Category | Description |
|---|---|---|---|
AuthUserThrottled |
429 | UserError |
Częstotliwość żądań przekracza limit szybkości zasobu. Sprawdź retryAfter. |
AuthUserDailyUsageExceeded |
429 | UserError |
Osiągnięto dzienny limit przydziału żądań (resetowanie o godzinie 00:00 UTC). Sprawdź retryAfter. |
Przeglądanie błędów specyficznych dla interfejsu API
| Kod błędu | Status HTTP | Category | Description |
|---|---|---|---|
BrowseApiDocNotFound |
404 | UserError |
Nie można odnaleźć dokumentu. Brak dostępnej zawartości dla określonego adresu URL. |
BrowseApiIsFilteredOut |
403 | UserError |
Wynik został porzucony z powodu filtrowania zasad lub zawartości. |
BrowseApiIsUrlExcluded |
403 | UserError |
Docelowy adres URL jest wykluczony lub niedozwolony przez zasady. |
BrowseApiTooManyOnDemandCrawls |
430 | UserError |
Zbyt wiele żądań przeszukiwania na żądanie w toku. |
Błędy usługi i infrastruktury
| Kod błędu | Status HTTP | Category | Wznawialny | Description |
|---|---|---|---|---|
InternalServerError |
500 | SystemError |
Tak (30s) | Wewnętrzny błąd serwera. |
Typowe scenariusze błędów
Błędy uwierzytelniania (401, 403)
Objaw: Uwierzytelnianie nie powiodło się lub dostęp zabroniony
Rozwiązania:
- Sprawdź, czy klucz interfejsu API jest poprawny i uwzględniony w nagłówku
x-apikey - Sprawdź, czy klucz interfejsu API nie wygasł
- Upewnij się, że masz wymagane uprawnienia dla punktu końcowego
- Skontaktuj się z przedstawicielem Microsoft, jeśli problemy będą się powtarzać
Example:
# Correct authentication
curl -X POST "https://api.microsoft.ai/v3/search/web" \
-H "x-apikey: your-valid-key-here" \
-H "content-type: application/json" \
-d '{"query": "test"}'
Ograniczanie szybkości (429)
Objaw: Przekroczono limit szybkości lub wyczerpano dzienny limit przydziału (AuthUserThrottled lub AuthUserDailyUsageExceeded)
Żądania powyżej limitu szybkości zasobu zwracają http 429. Limit szybkości jest wyświetlany w portalu internetowego IQ.
Rozwiązania:
- Zaimplementować logikę ponawiania prób z wykładniczo rosnącym odstępem
- Przed ponowieniu próby poczekaj
retryAfterinterwał odpowiedzi na błąd (np."60s") - Zmniejsz częstotliwość żądań
- Należy pamiętać, że dzienne limity przydziału (
AuthUserDailyUsageExceeded) są resetowane codziennie o godzinie 00:00 UTC - Aby zażądać wyższego limitu, skontaktuj się z pomocą techniczną internetową IQ
Przykładowa odpowiedź:
{
"errorCode": "AuthUserThrottled",
"errorCategory": "UserError",
"userMessage": "Rate limit exceeded. Please reduce your request frequency.",
"retryAfter": "60s",
"requestId": "req_123",
"traceId": "trace_456"
}
Nieprawidłowe parametry (400)
Objaw: Nieprawidłowe żądanie z powodu nieprawidłowych parametrów
Typowe problemy:
- Brak wymaganych pól (np.
queryparametru) - Wartości parametrów poza zakresem (np.
maxResults> 50) - Nieprawidłowe typy parametrów (np. ciąg zamiast liczby całkowitej)
- Nieobsługiwane wartości parametrów (np. nieprawidłowe
contentFormat)
Rozwiązania:
- Sprawdź, czy wszystkie wymagane parametry są obecne
- Sprawdzanie wartości parametrów pod kątem udokumentowanych ograniczeń
- Zapewnianie prawidłowego formatowania JSON
Błędy serwera i infrastruktury (500)
Objaw: Nieoczekiwany wewnętrzny błąd serwera lub usługi nadrzędnej (InternalServerError)
Rozwiązania:
- Sprawdź pole (wartość domyślna to
"30s") i ponów próbę żądania po oczekiwaniuretryAfter - Zaimplementuj ponawianie z wykładniczo rosnącym opóźnieniem i losowym opóźnieniem
- Jeśli problem będzie się powtarzać, skontaktuj się z pomocą techniczną Microsoft z podanym
traceIdw odpowiedzi
Przykładowa odpowiedź:
{
"errorCode": "InternalServerError",
"errorCategory": "SystemError",
"userMessage": "The service is temporarily unavailable. Please try again later.",
"technicalDetails": "An internal service error occurred. Please contact support if the issue persists.",
"retryAfter": "30s",
"traceId": "trace_456"
}
Przeglądanie zaakceptowanej odpowiedzi interfejsu API (202)
Objaw: Zaakceptowana odpowiedź z retryAfter polem
Wyjaśnienie: Gdy liveCrawl parametr ma wartość "rezerwowy", a adres URL musi zostać przeszukany, interfejs API zwraca wartość 202 Accepted z wartością wskazującą, kiedy ponowić próbę retryAfter żądania.
Obsługa:
# Initial request
curl -X POST "https://api.microsoft.ai/v3/browse" \
-H "x-apikey: your-key" \
-H "content-type: application/json" \
-d '{"url": "https://example.com", "liveCrawl": "fallback"}'
# Response: 202 Accepted with retryAfter
# Wait for the specified time, then retry the same request
Najlepsze praktyki
- Zawsze sprawdzaj kody stanu — nie zakładaj powodzenia
- Użyj traceId w celu uzyskania pomocy technicznej — dołącz identyfikator traceId podczas kontaktowania się z pomocą techniczną
- Implementowanie logiki ponawiania prób — używanie wycofywania wykładniczego dla błędów przejściowych
- Obsługa odpowiedzi 202 — w przypadku interfejsu API przeglądania przy użyciu przeszukiwania na żywo poczekaj i ponów próbę
- Sprawdź poprawność przed wysłaniem — sprawdź parametry lokalnie, aby uniknąć błędów 400
- Użyj tylko protokołu HTTPS — żądania HTTP będą zwracać błędy 410