gpt4 book ai didi

Android 通过 MultipartEntity 将图像发送到服务器 - 设置内容类型?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:30:29 25 4
gpt4 key购买 nike

我读过很多关于从 Android 应用程序和内容类型向服务器发送图像的帖子,它们分为三类:

a) 他们根本不设置内容类型,而且他们的代码可能以某种方式工作

b) 他们使用的是过时的方法

c) 他们使用的方法与我选择的方法完全不同。

我想将文件发送到服务器并将其存储在文件夹中。

我的代码完全是拼凑而成,是我在阅读大量帖子和文章后设法想出的屠杀工作,就是这样:

public void uploadImageToServer(String imagePath) throws Exception {

try {

// set the http handlers
httpClient = new DefaultHttpClient();
localContext = new BasicHttpContext(); // why do I need this?
postRequest = new HttpPost("http://asd.com/asd.php");
//postRequest.addHeader("Content-type", "image/jpeg"); // - this didnt work

// deal with the file
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap = BitmapFactory.decodeFile(imagePath);
bitmap.compress(CompressFormat.JPEG, 75, byteArrayOutputStream);
byte[] byteData = byteArrayOutputStream.toByteArray();
//String strData = Base64.encodeToString(data, Base64.DEFAULT); // I have no idea why Im doing this
ByteArrayBody byteArrayBody = new ByteArrayBody(byteData, "image"); // second parameter is the name of the image (//TODO HOW DO I MAKE IT USE THE IMAGE FILENAME?)

// send the package
multipartEntity = MultipartEntityBuilder.create();
multipartEntity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
multipartEntity.addPart("uploaded_file", byteArrayBody);

postRequest.setEntity(multipartEntity.build());

// get the response. we will deal with it in onPostExecute.
response = httpClient.execute(postRequest, localContext);
bitmap.recycle();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

错误是:

 FATAL EXCEPTION: AsyncTask #1
java.lang.RuntimeException: An error occured while executing doInBackground()
android.os.AsyncTask$3.done(AsyncTask.java:200)
java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
java.util.concurrent.FutureTask.setException(FutureTask.java:125)
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
java.util.concurrent.FutureTask.run(FutureTask.java:138)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
java.lang.Thread.run(Thread.java:1019)
Caused by: java.lang.NoClassDefFoundError: org.apache.http.entity.ContentType
org.apache.http.entity.mime.content.ByteArrayBody.<init>(ByteArrayBody.java:67)
org.apache.http.entity.mime.content.ByteArrayBody.<init>(ByteArrayBody.java:87)

最佳答案

如果您使用的是库,则需要将其放入/libs 文件夹中。

编辑:

http://hc.apache.org/downloads.cgi 下载 httpmime、httpcore 和 httpclient 库

关于Android 通过 MultipartEntity 将图像发送到服务器 - 设置内容类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20798837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com