2015-07-21 108 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