我正在尝试使用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)
我该如何解决这个问题?
答案 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的类路径中提供它。