HttpPost android多个实体

时间:2014-07-30 16:24:37

标签: java android http

我正在尝试使用MultipartEntityBuilder在Android中的httpPost中设置一些实体。 我下载了httpmime-4.3.jar并将其添加到我的lib文件夹中的Eclipse中。但是当我执行这段代码时:

MultipartEntityBuilder entity = MultipartEntityBuilder.create();
entity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
entity.addTextBody("PARAMS", "telo");
httpPost.setEntity(entity.build());

它产生了这个错误:

07-30 18:21:00.172: E/AndroidRuntime(3150): FATAL EXCEPTION: AudioRecorder Thread
07-30 18:21:00.172: E/AndroidRuntime(3150): Process: com.example.telo, PID: 3150
07-30 18:21:00.172: E/AndroidRuntime(3150): java.lang.NoClassDefFoundError: org.apache.http.entity.ContentType
07-30 18:21:00.172: E/AndroidRuntime(3150):     at org.apache.http.entity.mime.MultipartEntityBuilder.addTextBody(MultipartEntityBuilder.java:126)
07-30 18:21:00.172: E/AndroidRuntime(3150):     at org.gradiant.serverCom.SendAudioToServer.POST(SendAudioToServer.java:58)
07-30 18:21:00.172: E/AndroidRuntime(3150):     at com.example.telo.MainActivity.onFrameAcquired(MainActivity.java:133)
07-30 18:21:00.172: E/AndroidRuntime(3150):     at org.gradiant.audioAcquisition.AudioCapture.record(AudioCapture.java:113)
07-30 18:21:00.172: E/AndroidRuntime(3150):     at org.gradiant.audioAcquisition.AudioCapture.access$0(AudioCapture.java:88)
07-30 18:21:00.172: E/AndroidRuntime(3150):     at org.gradiant.audioAcquisition.AudioCapture$1.run(AudioCapture.java:79)
07-30 18:21:00.172: E/AndroidRuntime(3150):     at java.lang.Thread.run(Thread.java:841)

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

我认为您需要设置内容类型,然后将其添加到实体中。尝试这样的事情:

File f = new File(Your_file_path);

        FileBody bd = new FileBody(f);
        FormBodyPart fbp = new FormBodyPart("file", bd);
        fbp.addField("Content-Type", "audio/mp4");

         entity.addPart(fbp);

答案 1 :(得分:0)

看来你还需要这个罐子:

http://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore/4.3.2

请注意,您可能希望考虑使用gradle或maven之类的东西来管理您的构建。通过这种方式,您可以简单地说出您想要的依赖关系,maven或gradle会自动为您下载它,并在IDE的类路径中提供它。