500内部服务器错误的Android HttpPost文件上传
问题描述:
最近我注意到,当我尝试使用HttpPost的图像上传到我的服务器我得到这个错误,我在Eclipse中使用的代码是这样的:500内部服务器错误的Android HttpPost文件上传
HttpPost httpPost = new HttpPost((String) params[0]);
Uri uri = (Uri) params[2];
String fileName = getFileName(uri);
if (fileName == null) fileName = "image";
InputStream inputStream = getContentResolver().openInputStream(uri);
HttpEntity mpEntity = MultipartEntityBuilder.create().addPart("place", new StringBody((String) params[3])).addBinaryBody("appuploadfile", inputStream, ContentType.create("image"), fileName).build();
httpPost.setEntity(mpEntity);
httpPost.setHeader("User-Agent", userAgent);
httpPost.setHeader("Cookie", cookie);
httpResponse = httpclient.execute(httpPost);
inputStream.close();
我主机使用LiteSpeed,它一直工作到现在,但他们可能更新了一些东西,所以我的代码不再兼容?如果我在我的电脑上将服务器更改为本地服务器,则它可以正常工作,但我只会在主机上发生错误。有人知道可能是错的吗?我确实试图嗅探我的应用程序,看看它发送的是什么,并将其与浏览器(firefox)进行比较,数据看起来有点不同,并且似乎以不同的方式发送(请注意,文件上传在浏览器中正常工作,只是不能从我的Android应用程序工作)。
这是它的外观时,它是从我的应用程序发送这样的: http://justpaste.it/mi11
这是它的外观时,它是从一个浏览器发送像(Firefox和它工作正常): http://justpaste.it/mi1c
谢谢!
答
HTTP错误500表示内部服务器错误。也就是说,错误出现在服务器中,而不是在您的应用程序中。你需要检查服务器的日志,看看是什么造成它并修复它。
结果发现LiteSpeed服务器存在一个错误,并且已经修复,所以现在一切正常。谢谢! – eXistenZ