Im den Microsoft API von Bing Bild verwenden Dem Versuch beschrieben hereMicrosoft Cognitive API Bildersuche
Ich möchte nur die Bild Einsichten verwenden ähnliche Bilder zu finden, indem ein Bild auf dem Körper der Post-Anforderung senden, wie die doc sagt, dass ich eine URL oder das Bild zur Verfügung stellen kann.
Das Bild wird von einer Telefonkamera erfasst und an die API gesendet, die Idee besteht darin, ähnliche Bildergebnisse zu erzielen.
Zuerst bekam ich einen Fehler, der besagt, dass der 'q' Parameter benötigt wurde, aber ich möchte keine Suchabfrage nur das Bild verwenden.
Also änderte ich die Contenttype auf „multipart/form-data“ und verwendet „/ search? ModulesRequested = SimilarImages“
Das i erhalten, Antwort der api einen Fehler nicht etwas wie jetzt zu tun scheint, ist nur ein leere string so im wirklich hier verloren ...
Heres mein Code, um die Anfrage zu senden.
public async Task<string> GetImageInsights(byte[] image)
{
var uri = "https://api.cognitive.microsoft.com/bing/v5.0/images/search?modulesRequested=similarimages";
var response = await RequestHelper.MakePostRequest(uri, new string(Encoding.UTF8.GetChars(image)), key, "multipart/form-data");
var respString = await response.Content.ReadAsStringAsync();
return respString;
}
public static async Task<HttpResponseMessage> MakePostRequest(string uri, string body, string key, string contentType)
{
var client = new HttpClient();
// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", key);
// Request body
byte[] byteData = Encoding.UTF8.GetBytes(body);
using (var content = new ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue(contentType);
return await client.PostAsync(uri, content);
}
}
Im C# mit Xamarin auf Android
Es ist immer noch nicht, es funktioniert gibt nur eine leere Zeichenfolge zurück, was das bedeutet? sollte es nicht irgendeine Art von Fehler zurückgeben? – Nanoc
Ich gehe davon aus, dass ein leeres Ergebnis bedeutet, dass ähnliche Bilder nicht gefunden wurden. Was passiert, wenn Sie ein gemeinsames Bild aus dem Internet versuchen? – cthrash
Es stellte sich heraus, das leere Ergebnis war der Server 404 und wurde durch mein Bild größer als 1 MB verursacht, einmal behoben, dass ich bekomme einen Fehler für den fehlenden q-Parameter, wenn ich imgurl es nicht für die Abfrage warum den Postkörper zu benutzen tut? – Nanoc