안녕하세요, api post 요청 할 때 이미지를 전송하는 부분에 대해 질문드립니다.
위 이미지는 api 문서입니다. 저 내용을 바탕으로 아래와 같이 코드를 작성하였는데
정상적으로 api 호출이 되지가 않는데,혹시 문제점이 있을까요…
private async Task SendOcrRequest5()
{
try
{
// API URL
string url = "https://api3.useb.co.kr/ocr-doc/business-registration";
// Your Bearer Token
string bearerToken = await GetAccessToken();
// 파일 찾기 대화 상자 열기
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "이미지 파일|*.jpg;*.png;*.pdf|모든 파일|*.*";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
// 이미지 경로
string selectedImagePath = openFileDialog.FileName;
// 지원하는 확장자인지 확인
string[] allowedExtensions = { ".jpg", ".jpeg", ".png", ".pdf" };
string fileExtension = Path.GetExtension(selectedImagePath).ToLower();
if (allowedExtensions.Contains(fileExtension))
{
// Request Body
byte[] imageBytes = File.ReadAllBytes(selectedImagePath);
string imageBase64 = Convert.ToBase64String(imageBytes);
string fileName = Path.GetFileName(selectedImagePath);
// Request
using (HttpClient client = new HttpClient())
{
// Header
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", bearerToken);
// Body
MultipartFormDataContent content = new MultipartFormDataContent();
content.Add(new StringContent(imageBase64), "image_base64");
content.Add(new StreamContent(new MemoryStream(imageBytes)), "image", fileName);
// Request
HttpResponseMessage response = await client.PostAsync(url, content);
// Response
int statusCode = (int)response.StatusCode;
string responseBody = await response.Content.ReadAsStringAsync();
// Print response
Console.WriteLine("Status code: " + statusCode);
Console.WriteLine("Response body: " + responseBody);
}
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Exception: {ex.Message}");
}
}