Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android错误:多端口,客户端发送的请求语法不正确_Java_Android_Http Post_Httpclient_Multipartentity - Fatal编程技术网

Java Android错误:多端口,客户端发送的请求语法不正确

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

我想通过安全的RESTfulWeb服务发送歌曲(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());
        } 
我还包括了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());
}