0

我正在尝试使用 API 上传训练图像。 https://southcentralus.dev.cognitive.microsoft.com/docs/services/d9a10a4a5f8549599f1ecafc435119fa/operations/58d5835bc8cb231380095be3

这是我的代码。

public async Task<CreateImageResult> CreateImagesFromData(byte[] _image)
{
    using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri(_baseAddress);
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        client.DefaultRequestHeaders.Add("Training-key", _trainingKey);

        HttpResponseMessage response;

        using (var content = new ByteArrayContent(_image))
        {
            response = await client.PostAsync(String.Format("Training/projects/{0}/images/image?tagIds=Default", _projectId), content);
        }

        HttpContent data = response.Content;
        string result = await data.ReadAsStringAsync();
        return JsonConvert.DeserializeObject<CreateImageResult>(result);
    }
}

这个请求给了我一个UnkonwnMediaType,我想知道我错过了什么。

_image参数是一个有效的image/jpeg字节数组。

4

1 回答 1

1

自己找到了答案。

public async Task<CreateImageResult> CreateImagesFromData(byte[] _image)
{
    HttpContent bytesContent = new ByteArrayContent(_image);

    using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri(_baseAddress);
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        client.DefaultRequestHeaders.Add("Training-key", _trainingKey);

        HttpResponseMessage response;

        using (var content = new MultipartFormDataContent())
        {
            content.Add(bytesContent, "Image", "Image");
            response = await client.PostAsync(String.Format("Training/projects/{0}/images/image?tagIds=Default", _projectId), content);
        }

        HttpContent data = response.Content;
        string result = await data.ReadAsStringAsync();
        return JsonConvert.DeserializeObject<CreateImageResult>(result);
    }
}
于 2017-08-03T20:32:11.260 回答