2015-07-21 96 views
0

最近我注意到,当我尝试使用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

谢谢!

回答

2

HTTP错误500表示内部服务器错误。也就是说,错误出现在服务器中,而不是在您的应用程序中。你需要检查服务器的日志,看看是什么造成它并修复它。

+0

结果发现LiteSpeed服务器存在一个错误,并且已经修复,所以现在一切正常。谢谢! – eXistenZ