AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.10.2021, 18:04   #1  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
Как извлечь HttpResponseMessage из результата HttpClient.PostAsync (System.Threading.Tasks.Task )
Всем доброго времени суток.

Пытаюсь перенести в Ах .Net пример вот отсюда https://www.remove.bg/api#sample-code
Имею следующий код

X++:
System.Net.Http.MultipartFormDataContent    multipartFormDataContent;
System.Net.Http.Headers.HttpContentHeaders  httpContentHeaders;
System.Net.Http.HttpClient                  httpClient;
System.Net.Http.HttpResponseMessage         httpResponseMessage;
System.Net.Http.HttpContent                 httpContent;
System.Net.Http.ByteArrayContent            byteArrayContent;
System.Net.Http.StringContent               stringContent;
System.Threading.Tasks.Task                 task;
System.Byte[]                               fileByte;
System.IO.FileStream                        fileStream;
;

....

httpClient = new System.Net.Http.HttpClient ();
multipartFormDataContent = new System.Net.Http.MultipartFormDataContent();
    
httpContentHeaders = multipartFormDataContent.get_Headers();
httpContentHeaders.Add('X-Api-Key', SysAdminParameters::removeBgApiKey());
    
fileByte = System.IO.File::ReadAllBytes(fileName);
byteArrayContent = new System.Net.Http.ByteArrayContent(fileByte);    
multipartFormDataContent.Add(byteArrayContent, 'image_file', fileName);
    
stringContent = new System.Net.Http.StringContent('auto');
multipartFormDataContent.Add(stringContent, 'size');
    
try
{
    task = httpClient.PostAsync("https://api.remove.bg/v1.0/removebg", multipartFormDataContent);     
    //  вот тут собственно у меня и затык
        
    //httpResponseMessage = httpClient.PostAsync("https://api.remove.bg/v1.0/removebg", multipartFormDataContent);
    
    if (isSuccessStatusCode)
    {            
        fileStream = new System.IO.FileStream(fileNameWoBg, System.IO.FileMode::Create, System.IO.FileAccess::Write, System.IO.FileShare::None);    
        httpContent = httpResponseMessage.get_Content();
        httpContent.CopyToAsync(fileStream);
        fileStream.Close();
    }
}
catch (Exception::CLRError)
{
    //info(AifUtil::getClrErrorMessage());
    handleClrException_MRC(false, true);
    throw error("@SYS93289");
}
Как из Task извлечь HttpResponseMessage?
Подсказка явно показывает что результат работы httpClient.PostAsync это System.Threading.Tasks.Task`1[System.Net.Http.HttpResponseMessage]
Теги
.net, ax2012, generic, httpclient, httpresponsemessage, task

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
kurthatlevik: Batch Jobs; Take control of the executions Blog bot DAX Blogs 0 20.01.2020 20:13
stoneridgesoftware: Working with Task Recorder and Task Guide in New Microsoft Dynamics AX Blog bot DAX Blogs 0 27.05.2016 00:16
Trace Parser. Error: Incorrect or missing MOF file, import is not available. Poleax DAX: Администрирование 6 13.05.2011 10:43

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 17:50.