2017-12-18 17 views
0

다음 API를 사용하여 파일을 watson 검색 서비스에 업로드하고 있습니다. 유효한 유형을 제공하더라도 응답이 지원되지 않는 파일 형식으로 표시됩니다. API : discovery service apiAPI를 통해 왓슨 발견 서비스에 문서를 업로드하는 방법. ASP.net

public async Task<ActionResult> Index() 
    { 
     using (var httpClient = new HttpClient()) 
     { 

      //ADD BASIC AUTH 
      var authByteArray = Encoding.ASCII.GetBytes("{auth key}"); 
      var authString = Convert.ToBase64String(authByteArray); 
      httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authString); 

      var text = string.Empty; 
      var uri = "https://gateway.watsonplatform.net/discovery/api/v1/environments/{envid}/collections/{collectionid}/documents?version=2017-11-07"; 


      var content = new MultipartFormDataContent(); 
      var bytes = System.IO.File.ReadAllBytes(Server.MapPath("~/Views/UploadDocument/civilwar-api1.html")); 
      var file = new StreamContent(new MemoryStream(bytes)); 
      content.Headers.ContentType = MediaTypeHeaderValue.Parse("text/html"); 
      content.Add(new StreamContent(new MemoryStream(bytes)), "file"); 

      var response = await httpClient.PostAsync(uri, content); 
      var text1 = await response.Content.ReadAsStringAsync(); 

     } 

     return View(); 
    } 

API 응답과 같이 왓슨 개발자 클라우드, 당신은 .NET SDK을 사용할 수 있습니다 당신이 볼 수 있듯이 { "code" : 415, "error" : "Unsupported Media Type" }

답변

0

httpClient.DefaultRequestHeaders .Accept .Add(new MediaTypeWithQualityHeaderValue("application/json"));//ACCEPT header

+0

코드 만 대답하면 문제가 해결 될 수 있지만 해결 방법을 이해하고 향후 유사한 문제를 해결하는 방법에 대한 설명이 길어집니다. –

1

을 시도합니다.

이 저장소에서 Watson의 각 서비스를 사용하는 경우 examples을 볼 수 있습니다.

방법

문서를 추가합니다 :

#region Documents 
     private void AddDocument() 
     { 
      Console.WriteLine(string.Format("\nCalling AddDocument()...")); 
      using (FileStream fs = File.OpenRead(_filepathToIngest)) 
      { 
       var result = _discovery.AddDocument(_createdEnvironmentId, _createdCollectionId, _createdConfigurationId, fs as Stream, _metadata); 

       if (result != null) 
       { 
        Console.WriteLine(JsonConvert.SerializeObject(result, Formatting.Indented)); 
        _createdDocumentId = result.DocumentId; 
       } 
       else 
       { 
        Console.WriteLine("result is null."); 
       } 
      } 
     }