2017-04-10 86 views
0

我正在使用電子來構建一個應用程序,它使用快遞在Web服務器中提供多個圖像文件。快速檢測獲取請求

從Android中構建的另一個應用程序,我從服務器獲取文件並將文件發佈到它。

我沒有問題,當Android應用被張貼的文件檢測:

app.post('/fileupload', function(req, res) { 
    alert("post"); 
    var fstream; 
    req.pipe(req.busboy); 
    req.busboy.on('file', function (fieldname, file, filename) { 
     //console.log("Uploading: " + filename); 
     fstream = fs.createWriteStream(__dirname + '/images/' + filename); 
     file.pipe(fstream); 
     fstream.on('close', function() { 
      res.redirect('back'); 
     }); 
    }); 
}); 

但仍然沒有成功時,Android應用程序從服務器(它得到他們,但我沒有拿到文件檢測

app.use(function (req, res, next) { 
    alert("get"); 
    next(); 
}); 

和這一個了:

app.get('/', function (req, res) { 
    alert("get"); 
    next(); 
}); 
方式刷新當它我的輸出屏幕),我使用此代碼試圖

我把該目錄中的文件名爲圖片:

var express = require('express') 
var app = express() 
app.use(express.static('images')); 
app.listen(3000); 

編輯

如果我打開一個瀏覽器相同的URL的Android不饒人,它觸發事件並顯示警告。爲什麼在Android打開連接時不會觸發?我不知道。 的GET請求Android的代碼是:

URL url = new URL(sURL); 
HttpURLConnection conection = (HttpURLConnection)url.openConnection(); 
conection.setRequestMethod("GET"); 
conection.connect(); 
int lenghtOfFile = conection.getContentLength(); 

InputStream inputURL = new BufferedInputStream(url.openStream()); 
+0

使用類似的console.log(「測試++++++++++++」),而不是警報(),以檢查是否請求與服務器的console.log相同 –

+0

取得結果 – takluiper

回答

0

使用此代碼,那麼你應該使用res.send(),即使用我的編譯棄用versión(23),express檢測獲取請求。

HttpClient httpclient = new DefaultHttpClient(); 
// Prepare a request object 
HttpGet httpget = new HttpGet(sURL.substring(0, sURL.lastIndexOf("/"))); 
// Execute the request 
HttpResponse response; 
response = httpclient.execute(httpget); 
0

如果調用API的使用JSON

app.post('/fileupload', function(req, res) { 
     alert("post"); 
     var fstream; 
     req.pipe(req.busboy); 
     req.busboy.on('file', function (fieldname, file, filename) { 
      //console.log("Uploading: " + filename); 
      fstream = fs.createWriteStream(__dirname + '/images/' + filename); 
      file.pipe(fstream); 
      fstream.on('close', function() { 

       res.send({status:1,data:{}}) //check this response on android side and change/refresh screen on android side if needed 
       //res.redirect('back'); 

      }); 
     }); 
    });