2016-10-18 1 views
0

私はAndroidでVideo Cognitive Serviceを使いたいと思っています。 マイクロソフトが提供したサンプルがC#で使用されています。 ビデオ機能がサーバーにURLを送信しています。 HTTP POSTを使用してAndroidにURLを送信することは可能です。Androidの "application/octet-stream"でHTTP POSTを使用するには? (Microsoft Cognitive Video)

http://ppt.cc/V1piA

私が出会った問題は、私は、「アプリケーション/オクテットストリーム」のURL形式を知らない、と私はMicrosoftのWebサイト上の例を見ていないということです。

AndroidのHTTP POSTを使用してダウンロードした動画をサーバーにアップロードすることはできますか?サーバーから分析結果を受け取ることはできますか?

可能であれば、サーバーに要求を送信するHTTP POSTの形式は何ですか?

ありがとうございました。

答えて

0

HTTP POSTはHTTP method 'POST'を指し、application/octet-streamはメディアタイプ(この場合はアプリケーション固有のオクテットまたはバイトのストリーム)を指します。

これは残念なことに非常に主観的です.HTTPアクションを使用してコンテンツをアップロードするメカニズムが一方的に優先される場合があります。言えば十分、あなたはあなたが選んだのメカニズムを使用してPOSTリクエストをフォーマットし、あなたのコンテンツのInputStreamを作成します。コンテンツタイプを設定してください作る

アプリケーション/オクテットストリームへのPOSTの

投稿を実行した後、期待する返品の種類についてAPIドキュメントを参照してください。

+0

あなたの答えをありがとう。 –

+0

私はサーバーにURLを送信する方法を知っていますが、AndroidサーバーでHTTP POSTによってダウンロードしたビデオをアップロードする場合、Microsoftサーバーが望む形式はわかりません。 –

+0

私はアプリケーション/オクテットストリームを要求しているという事実に基づいて、ストリームの実際の内容を決定するヒューリスティックを適用すると推測します。そのメディアタイプは、8ビットの純粋な方法で転送されるすべてのコンテンツの包括的キャッチオールです。 –

1

あなたは、認知サービスの顔検出のための画像ファイルを送信するために、このようなものを試すことができます。 org.apache.httpcomponents :: httpclientを使用して:

@Test 
    public void testSendBinary() throws MalformedURLException { 
     File picfile = new File("app/sampledata/my_file.jpeg"); 
     if (!picfile.exists()) throw new AssertionError(); 


     HttpClient httpclient = HttpClients.createDefault(); 

     try { 
      URIBuilder builder = new URIBuilder("https://westcentralus.api.cognitive.microsoft.com/face/v1.0/detect"); 

      builder.setParameter("returnFaceId", "true"); 
      builder.setParameter("returnFaceLandmarks", "false"); 

      URI uri = builder.build(); 
      HttpPost request = new HttpPost(uri); 
      request.setHeader("Content-Type", "application/octet-stream"); 
      request.setHeader("Ocp-Apim-Subscription-Key", "***"); 

      // Request body 
      request.setEntity(new FileEntity(picfile)); 

      HttpResponse response = httpclient.execute(request); 
      HttpEntity entity = response.getEntity(); 

      if (entity != null) { 
       System.out.println(EntityUtils.toString(entity)); 
      } 
     } catch (Exception e) { 
      System.out.println(e.getMessage()); 
     } 
    } 
関連する問題