Uwaga
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.
Ostrzeżenie
30 października 2020 r. interfejsy API wyszukiwania Bing zostały przeniesione z usług Azure AI do usług wyszukiwania Bing. Ta dokumentacja jest udostępniana tylko do celów referencyjnych. Aby uzyskać zaktualizowaną dokumentację, zobacz dokumentację interfejsu API wyszukiwania Bing. Aby uzyskać instrukcje dotyczące tworzenia nowych zasobów platformy Azure na potrzeby wyszukiwania Bing, zobacz Tworzenie zasobu wyszukiwania Bing za pośrednictwem witryny Azure Marketplace.
Istnieje wiele punktów końcowych dostępnych za pośrednictwem interfejsu API wyszukiwania obrazów Bing. Punkt /details
końcowy akceptuje żądanie POST z obrazem i może zwrócić różne szczegóły dotyczące obrazu. Ta aplikacja języka C# wysyła obraz przy użyciu tego interfejsu API i wyświetla szczegóły zwrócone przez usługę Bing, które są obiektami JSON, takimi jak następujące:
W tym samouczku wyjaśniono, jak:
- Użyj punktu końcowego wyszukiwania
/details
obrazów w żądaniuPOST
- Określanie nagłówków żądania
- Określanie wyników przy użyciu parametrów adresu URL
- Prześlij dane obrazu i wyślij
POST
żądanie - Drukowanie wyników JSON w konsoli
Wymagania wstępne
- Dowolna wersja programu Visual Studio 2017 lub nowszego.
Konstruowanie żądania wyszukiwania szczegółów obrazu
Poniżej znajduje się /details
punkt końcowy, który akceptuje żądania POST z danymi obrazu w treści żądania. Możesz użyć globalnego punktu końcowego poniżej lub subdomeny niestandardowej punktu końcowego wyświetlanej w witrynie portalu Azure dla twojego zasobu.
https://api.cognitive.microsoft.com/bing/v7.0/images/details
Podczas konstruowania adresu URL modules
żądania wyszukiwania parametr jest zgodny z powyższym punktem końcowym i określa typy szczegółów, które będą zawierać wyniki:
modules=All
-
modules=RecognizedEntities
(osoby lub miejsca widoczne na obrazie)
Określ modules=All
w żądaniu POST, aby uzyskać tekst JSON zawierający następujące elementy:
-
bestRepresentativeQuery
— zapytanie Bing zwracające obrazy podobne do przekazanego obrazu -
detectedObjects
- obiekty znalezione na obrazie -
image
- metadane obrazu -
imageInsightsToken
— token dla późniejszych żądań GET, które pobierająRecognizedEntities
(osoby lub miejsca widoczne na obrazie) z obrazu. -
imageTags
— tagi obrazu -
pagesIncluding
- Strony sieci Web zawierające obraz -
relatedSearches
— wyszukuje na podstawie szczegółów na obrazie. -
visuallySimilarImages
- podobne obrazy w Internecie.
Określ modules=RecognizedEntities
w żądaniu POST, aby uzyskać imageInsightsToken
tylko element , którego można użyć w kolejnym żądaniu GET w celu zidentyfikowania osób lub miejsc na obrazie.
Tworzenie obiektu WebClient i ustawianie nagłówków dla żądania interfejsu API
WebClient
Utwórz obiekt i ustaw nagłówki. Wszystkie żądania do interfejsu API wyszukiwania Bing wymagają elementu Ocp-Apim-Subscription-Key
. Żądanie POST
przekazania obrazu musi również określać wartość ContentType: multipart/form-data
.
WebClient client = new WebClient();
client.Headers["Ocp-Apim-Subscription-Key"] = accessKey;
client.Headers["ContentType"] = "multipart/form-data";
Przekaż obraz i wyświetl wyniki
Klasa WebClient
metoda UpLoadFile()
formatuje dane na potrzeby żądania POST
, w tym formatowanie RequestStream
i wywoływanie HttpWebRequest
.
Wywołaj WebClient.UpLoadFile()
z punktem końcowym /details
i plikiem obrazu do przesłania. Użyj odpowiedzi JSON, aby zainicjować wystąpienie SearchResult
struktury i zapisać odpowiedź.
const string uriBase = "https://api.cognitive.microsoft.com/bing/v7.0/images/details";
// The image to upload. Replace with your file and path.
const string imageFile = "your-image.jpg";
byte[] resp = client.UploadFile(uriBase + "?modules=All", imageFile);
var json = System.Text.Encoding.Default.GetString(resp);
// Create result object for return
var searchResult = new SearchResult()
{
jsonResult = json,
relevantHeaders = new Dictionary<String, String>()
};
Tę odpowiedź JSON można następnie wydrukować w konsoli.
Użyj tokenu informacji o obrazie w żądaniu
Aby użyć ImageInsightsToken
, zwróconego wraz z wynikami POST
, możesz dodać go do żądania GET
. Przykład:
https://api.cognitive.microsoft.com/bing/v7.0/images/details?InsightsToken="bcid_A2C4BB81AA2C9EF8E049C5933C546449*ccid_osS7gaos*mid_BF7CC4FC4A882A3C3D56E644685BFF7B8BACEAF2
Jeśli na obrazie znajdują się możliwe do zidentyfikowania osoby lub miejsca, to żądanie zwróci informacje o nich.