我想使用Android中的视频认知服务。Microsoft提供的示例在C#中使用。视频功能是向服务器发送URL,所以我认为在Android中使用HTTP POST发送URL是可能的。
http://ppt.cc/v1pia
您可以尝试这样的方法来发送用于认知服务面部检测的图像文件。使用org.apache.httpcomponents::httpclient:
@Test
public void testSendBinary() throws MalformedURLException {
File picfile = new File("app/sampledata/my_file.jpeg");
if (!picfile.exists()) throw new AssertionError();
HttpClient httpclient = HttpClients.createDefault();
try {
URIBuilder builder = new URIBuilder("https://westcentralus.api.cognitive.microsoft.com/face/v1.0/detect");
builder.setParameter("returnFaceId", "true");
builder.setParameter("returnFaceLandmarks", "false");
URI uri = builder.build();
HttpPost request = new HttpPost(uri);
request.setHeader("Content-Type", "application/octet-stream");
request.setHeader("Ocp-Apim-Subscription-Key", "***");
// Request body
request.setEntity(new FileEntity(picfile));
HttpResponse response = httpclient.execute(request);
HttpEntity entity = response.getEntity();
if (entity != null) {
System.out.println(EntityUtils.toString(entity));
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
我试图使用RESTAssuret将“application/octet-stream”内容类型发送到RestAPI。但是它失败了,并抛出错误,比如:不知道如何将×××××编码为字节流。我曾尝试使用encoderConfig().encodeContentTypeas()方法,但此meyhod不适用于RestAssured。请建议是否有任何其他方法来解决这个问题。
我试图在Spring Boot中创建一个使用JSON的简单Post请求处理程序。 默认情况下,我的理解是这将使用application/json。然而,当我使用curl或Postman发出请求时,我从Spring得到了这个响应。。。 在邮递员中,我得到了“415不支持的媒体类型”。 如果我明确定义“consumes”属性。。。 Spring开机返回这个。。。 我尝试将consumes设置为“app
但最后一句话是: org.glassfish.jersey.message.internal.messageBodyProviderNotFoundException:找不到媒体的MessageBodyReader type=application/octet-stream,type=class com.app.weather.providers.org.openweatherap.pojo.we
我的控制器如下所示: 我已经尝试将“consumes”更改为将APPLICATION_OCTET_STREAM_VALUE删除为MULTIPART_FORM_DATA_VALUE,也尝试删除它,但这些都没有帮助。 如果你需要更多的信息,请告诉我。谢了。
问题内容: 我正在通过此方法使用RESTfull Web服务: 在我的Android应用中,我想调用此方法。如何使用org.apache.http.client.methods.HttpPost给参数赋予正确的值; 我注意到我可以使用批注@HeaderParam并将标题添加到HttpPost对象。这是正确的方法吗?这样做: 在httpPost上使用setEntity方法将不起作用。它仅使用json