Project Oxford Faces API [Java] {" code":" BadArgument"," message":" Invalid Media Type。"}
我正在下载图片,如此...
I am downloading an image, like so...
网址url =新网址(" http://www.huntresearchgroup.org.uk/images/group/group_photo_2010.jpg");
        BufferedImage image = ImageIO.read(url);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ImageIO.write(image," jpg",baos);
        bytes = baos.toByteArray();
         base64Img = Base64.getEncoder()。encodeToString(bytes);
        StringBuilder sb = new StringBuilder();
         for(byte by:bytes)
             sb.append(Integer.toBinaryString(& 0xFF));
         imgBinaryString = sb.toString();
URL url = new URL("http://www.huntresearchgroup.org.uk/images/group/group_photo_2010.jpg");
BufferedImage image = ImageIO.read(url);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", baos);
bytes = baos.toByteArray();
base64Img = Base64.getEncoder().encodeToString(bytes);
StringBuilder sb = new StringBuilder();
for (byte by : bytes)
sb.append(Integer.toBinaryString(by & 0xFF));
imgBinaryString = sb.toString();
URIBuilder builder = new URIBuilder(" https://api.projectoxford.ai/face/v1.0/detect");
         builder.setParameter(" returnFaceId"," false");
         builder.setParameter(" returnFaceLandmarks"," false");
         builder.setParameter(" returnFaceAttributes"," age,gender");
$
         URI uri = builder.build();
         HttpPost请求=新的HttpPost(uri);
         request.setHeader(" Content-Type"," octet-stream");
           
         StringEntity reqEntity = new StringEntity(imgBinaryString);
         request.setEntity(reqEntity);
URIBuilder builder = new URIBuilder("https://api.projectoxford.ai/face/v1.0/detect");
builder.setParameter("returnFaceId", "false");
builder.setParameter("returnFaceLandmarks", "false");
builder.setParameter("returnFaceAttributes", "age,gender");
URI uri = builder.build();
HttpPost request = new HttpPost(uri);
request.setHeader("Content-Type", "octet-stream");
StringEntity reqEntity = new StringEntity(imgBinaryString );
request.setEntity(reqEntity);
我已经尝试发送图像的二进制表示字符串,如上所示。我已经尝试发送Base64编码图像的二进制表示字符串。什么都行不通。一些帮助会很棒。
I have tried sending a binary representation string of the image, as shown above. I have tried sending a binary representation string of the Base64 encoded image. Nothing works. Some help would be great.
两个问题。
- 错误是指MIME类型,应该是"application / octet-stream",而不仅仅是"octet-stream"。
- 如果您要检测图像中的面部如果您有网址,则无需先将其下载到您的客户端。 而是发送一个JSON主体"{" url":" your-url"}'。 如果你走这条路线,内容类型应该是
" application / json"。