我正在使用多部分和流將圖像文件上傳到我的實時服務器(WCF服務)。 圖像大小爲500-700KB,當我使用真正的相機。從模擬器它成功上傳樣品,但是當我將它安裝到我的索尼愛立信Arc S時,應用程序不會上傳任何圖像。有代碼檢查狀態代碼,但沒有發生,沒有錯誤,沒有例外,沒有服務器響應。在我的手機我使用移動數據連接(供應商格雷門電話,GSM,孟加拉國)。不明白是什麼問題。有誰能夠幫助我?文件上傳在模擬器中工作,但不在設備中
的Andriod代碼:
HttpPost httppost = new HttpPost(SERVICE_URI + "/uploadImage");
DefaultHttpClient httpclient = new DefaultHttpClient();
File dir = Environment.getExternalStorageDirectory();
File imageFile = new File(dir, getImagepath(directoryName, false));
if (imageFile.exists()) {
MainActivity.this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(MainActivity.this, "File Exist", Toast.LENGTH_SHORT)
.show();
}
});
MultipartEntity entity = new MultipartEntity();
entity.addPart("image", new FileBody(imageFile, "image/jpeg"));
httppost.setEntity(entity);
HttpResponse response = httpclient.execute(httppost);
StatusLine statusLine = response.getStatusLine();
final int statusCode = statusLine.getStatusCode();
if (statusCode == 200) {
MainActivity.this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(MainActivity.this, "Upload successful!", Toast.LENGTH_SHORT)
.show();
}
});
} else {
MainActivity.this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(MainActivity.this, "File Upload Failed,status:"+statusCode, Toast.LENGTH_SHORT)
.show();
}
});
}
} else {
MainActivity.this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(MainActivity.this, "File dont't exist", Toast.LENGTH_SHORT)
.show();
}
});
}
更新: 我在其中生成日誌文件中的異常catch塊添加記錄寫入「連接到XXXX:XXXX拒絕」,所以很顯然,它正在得到一個異常,它是從服務器端。但仍然不知道是什麼問題。
更新: 最後,我得到了這個問題這是我的「多分析器」在服務器端,我用錯了ServiceURi android系統中的代碼。你必須要小心選擇適合您need.I解析器!對我的解析器文件做了很少的修改,並且工作正常!但仍然需要修改解析器,因爲需要整合許多其他員工。無論如何,感謝您的努力!有用的鏈接:http://www.ideatoappster.com/android-to-wcf-streaming-multi-part-binary-images/
通過android ConnectivityManager。上傳前首先檢查連接是否正常。 \t connectivity =(ConnectivityManager)上下文 \t \t \t \t .getSystemService(context.CONNECTIVITY_SERVICE); \t \t netInfo = connectivity.getActiveNetworkInfo(); – 2013-03-12 09:40:25