我正在尝试更多地使用microsoft自定义visionknow。我需要发出一个http请求来发送要分析的图像。我成功地向c提出了请求,所以我知道信息是正确的。
然而,当我试图用java发出同样的请求时,我收到了一个http400错误。
我认为我没有在java中正确处理请求。是真的吗?
下面是代码片段。
c#:
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Prediction-Key", PredicitionKey);
using (var content = new
ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
response = await client.PostAsync(url, content);
Console.WriteLine(await response.Content.ReadAsStringAsync());
}
java 语:
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("Prediction-Key", predicitionKey);
connection.setRequestProperty("Content-Type", "application/octet-stream");
connection.setDoInput(true);
connection.setDoOutput(true);
connection.getOutputStream().write(data.getData());
connection.connect();
Reader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
1条答案
按热度按时间lhcgjxsq1#
首先,更换
具有
如果仍然不起作用,那么标题就是问题所在。
因为c代码运行成功
您的c#请求与fiddler中的java请求之间的唯一区别是java请求有两个附加头(accept,user agent)。
尝试显式设置它们
如果仍然不起作用,请尝试删除这两个标头或检查您在请求正文中发送的数据。