2017-02-07 7 views
0

私はこの例で提供さ(link)を使用して、マイクロソフトの顔APIからの単純な機能を取得しようとしています:400不正な要求のC#のマイクロソフト顔アピ

// Request headers 
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "{subscription key}"); 

// Request parameters 
queryString["returnFaceId"] = "true"; 
queryString["returnFaceLandmarks"] = "false"; 
queryString["returnFaceAttributes"] = "{string}"; 
var uri = "https://westus.api.cognitive.microsoft.com/face/v1.0/detect?" + queryString; 

HttpResponseMessage response; 

// Request body 
byte[] byteData = Encoding.UTF8.GetBytes("{body}"); 

using (var content = new ByteArrayContent(byteData)) 
{ 
    content.Headers.ContentType = new MediaTypeHeaderValue("< your content type, i.e. application/json >"); 
    response = await client.PostAsync(uri, content); 
} 

私はコードを実行するたびに、私は400不正な要求を取得私はその特定の原因を見ることができません。これは私の見た目です。

// Request headers 
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "xxxxxxxxxxxxxxxxxxxxxxx"); 

// Request parameters 
queryString["returnFaceId"] = "true"; 
queryString["returnFaceLandmarks"] = "false"; 
queryString["returnFaceAttributes"] = "Age"; 
var uri = "https://westus.api.cognitive.microsoft.com/face/v1.0/detect?" + queryString; 

HttpResponseMessage response; 

// Request body 
byte[] byteData = Encoding.UTF8.GetBytes("{ \"url\":\"http://i0.kym-cdn.com/photos/images/newsfeed/000/272/907/dc1.jpg/ \"}"); 

using (var content = new ByteArrayContent(byteData)) 
{ 
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); 
    response = await client.PostAsync(uri, content); 
    Console.Write(response.StatusCode); 
} 
+1

あなたのURLには '/'がありますが、これはおそらく画像が返されないという意味で役に立ちません。 – DavidG

+0

解決のためにDavidに感謝します。 URLの末尾に余分なスラッシュは、犯人だった。 –

答えて

0

コードは問題なく表示され、画像にアクセスできないという唯一の問題があります。ブラウザから直接画像にアクセスしようとすると、アクセス拒否エラーが発生します。それはあなたがチェックしたものですか?

私は以下のコードを試してみました、それが正常に動作します:

VARクライアント=新しいHttpClientを(); var queryString = HttpUtility.ParseQueryString(string.Empty);

  // Request headers 
      client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key","please use your key"); 

      // Request parameters 
      queryString["returnFaceId"] = "true"; 
      queryString["returnFaceLandmarks"] = "false"; 
      queryString["returnFaceAttributes"] = "age"; 
      var uri = "https://westus.api.cognitive.microsoft.com/face/v1.0/detect?" + queryString; 

      HttpResponseMessage response; 

      // Request body 
      byte[] byteData = Encoding.UTF8.GetBytes("{ \"url\":\"https://lh5.googleusercontent.com/-AI__M0nZDU4/AAAAAAAAAAI/AAAAAAAAAGs/P5tdI3rFaFs/s0-c-k-no-ns/photo.jpg \"}"); 


      using (var content = new ByteArrayContent(byteData)) 
      { 
       content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); 

       response = await client.PostAsync(uri, content); 

       Console.Write(response.StatusCode); 

      } 
+0

私は20分前のコメントでこれを言ったのですが、なぜあなたは答えが必要だと感じましたか? – DavidG

+0

謝罪デビッド私は0.18であなたの返事を見ませんでした。私がしたのは私の返事を入力することでした。あなたの答えは正確です! –

関連する問題