Java Android错误:多端口,客户端发送的请求语法不正确
我想通过安全的RESTfulWeb服务发送歌曲(mp3/wav)文件和一些数据。我正在使用MultipartEntity发出HttpPost请求。但是当我通过HttpClient执行它时,服务器会回复这个错误 HTTP状态400-请求错误 类型:状态报告 消息:请求错误 客户端发送的请求语法不正确(请求错误)。 但是,如果我们从它的Web界面调用它,该服务会做得非常好。请帮忙 这是密码Java Android错误:多端口,客户端发送的请求语法不正确,java,android,http-post,httpclient,multipartentity,Java,Android,Http Post,Httpclient,Multipartentity,我想通过安全的RESTfulWeb服务发送歌曲(mp3/wav)文件和一些数据。我正在使用MultipartEntity发出HttpPost请求。但是当我通过HttpClient执行它时,服务器会回复这个错误 HTTP状态400-请求错误 类型:状态报告 消息:请求错误 客户端发送的请求语法不正确(请求错误)。 但是,如果我们从它的Web界面调用它,该服务会做得非常好。请帮忙 这是密码 HttpClient httpclient = new DefaultHttpClient(); HttpPo
HttpClient httpclient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost();
try {
MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("email", new StringBody("test@testmail.com"));
reqEntity.addPart("password", new StringBody("123"));
reqEntity.addPart("title", new StringBody("My new song"));
reqEntity.addPart("musicData", new FileBody(new File(FilePath)));
// FIlePath is path to file and contains correct file location
postRequest.setEntity(reqEntity);
postRequest.setURI(new URI(ServiceURL));
HttpResponse response = httpclient.execute(postRequest);
} catch (URISyntaxException e) {
Log.e("URISyntaxException", e.toString());
}
我还包括了apache-mime4j、httpclient、httpcore和HttpTime JAR,用于多端口
这是该服务的HTML页面快照。
请求的标题似乎不正确,如果使用服务器端无法处理的或,则可能会出现此问题。请尝试在创建HttpPost对象时删除setURI方法并传入URL,如下所示。这对我有用()
不要浪费时间尝试不同的组合。有一些HTTP请求工具可用于HTTP,您可以使用这些工具跟踪您得到的请求和响应。HTTP分析器下载试用版 从您的工作Web界面调用URL,复制请求和响应 然后从程序中执行同样的操作,该工具能够很好地捕获您的请求和响应数据
现在比较工作和非工作请求,您肯定能够发现问题,无论是标题问题还是与身份验证相关的问题。您确定身份验证有效吗?您是否也可以在web服务中发布映射URL?可能是您的URL请求与您映射的不同。我检查了URL是否正确,并在HTML页面中工作。。。但是Android的代码给出了错误您确定名称
电子邮件
,音乐CDATA
等的大小写正确吗?是的。。。。。这是正确的,我再次检查它只是接受它,因为赏金时间已经结束,我们离解决方案还有多远,但问题仍然存在:(
HttpClient httpclient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost(ServiceURL);
try {
MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("email", new StringBody("test@testmail.com"));
reqEntity.addPart("password", new StringBody("123"));
reqEntity.addPart("title", new StringBody("My new song"));
reqEntity.addPart("musicData", new FileBody(new File(FilePath)));
postRequest.setEntity(reqEntity);
HttpResponse response = httpclient.execute(postRequest);
} catch (URISyntaxException e) {
Log.e("URISyntaxException", e.toString());
}