【问题标题】:Face API Base64 image post returns badrequest人脸 API Base64 图片帖子返回 badrequest
【发布时间】:2016-11-01 19:23:33
【问题描述】:

Face API 适用于图像的 URL,但是当我尝试将图像发送为 Base64 编码它返回一个错误。 在这个示例代码中,我使用 Restsharp 发送数据

我的代码如下所示。

 public string GenerateRest(String Base64Image)
    {
        var serviceURL = Constants.BaseServiceURI;
        var client = new RestClient(serviceURL);

        var request = new RestRequest(Constants.BaseResoruce, Method.POST);
        request.AddHeader("Ocp-Apim-Subscription-Key", Constants.MS_API_KEY);
        request.AddHeader("Content-Type", "application/octet-stream");

        request.RequestFormat = DataFormat.Json;

        var baseString = Base64Image.Replace("data:image/jpeg;base64,", String.Empty);

        byte[] newBytes = Convert.FromBase64String(baseString);

        request.AddBody(newBytes);
        // execute the request
        IRestResponse response = client.Execute(request);
        var content = response.Content; // raw content as string

        return content;
    }

根据应答码修复Restsharp请求后就像

 public FaceAPIOutput GenerateRest(String Base64Image)
    {
        var serviceURL = Constants.BaseServiceURI;
        var client = new RestClient(serviceURL);
        var baseString = Base64Image.Replace("data:image/jpeg;base64,", String.Empty);
        byte[] newBytes = Convert.FromBase64String(baseString);

        var request = new RestRequest(Constants.BaseResoruce, Method.POST);
        request.AddHeader("Ocp-Apim-Subscription-Key", Constants.MS_API_KEY);
        request.AddParameter("application/octet-stream", newBytes, ParameterType.RequestBody);
        request.RequestFormat = DataFormat.Json;

        IRestResponse response = client.Execute(request);
        var content = response.Content; // raw content as string

        return ConvertToFaceAPIOutObject(content);
    }

【问题讨论】:

    标签: c# rest microsoft-cognitive


    【解决方案1】:

    Restsharp 在获取二进制有效负载时看起来有点特殊。您需要执行以下操作,而不是添加多部分表单部分的 request.AddBody

    request.AddParameter("application/octet-stream", newBytes, ParameterType.RequestBody);
    

    参考Can RestSharp send binary data without using a multipart content type?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-09
      • 1970-01-01
      • 2023-03-10
      • 2016-05-05
      • 1970-01-01
      • 2017-06-26
      • 2022-08-17
      • 2020-12-05
      相关资源
      最近更新 更多