【发布时间】:2012-07-24 10:34:53
【问题描述】:
我想通过安全的 RESTful Web 服务发送歌曲 (mp3/wav) 文件和一些数据。我正在使用 MultipartEntity 发出 HttpPost 请求。但是当我通过HttpClient执行它时,服务器会回复这个错误
HTTP 状态 400 - 错误请求 类型:状态报告 消息:错误请求 客户端发送的请求在语法上不正确(错误请求)。
但是,如果我们从它的 Web 界面调用它,该服务会做得很好。请帮忙
代码
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());
}
我还为 MultipartEntity 添加了 apache-mime4j、httpclient、httpcore 和 httpmime jar。
这是服务的 HTML 页面快照。
【问题讨论】:
-
您确定身份验证有效吗?
-
您可以在您的网络服务中发布您的映射 URL 吗?可能是您的 URL 请求与您映射的不同。
-
我检查了 URL 是否正确并在 HTML 页面中工作......但是 Android 的代码给出了错误
-
您确定名称
email、musicData等在小写/大写方面是正确的吗? -
是的.....它是正确的,我仔细检查了它
标签: java android http-post httpclient multipartentity