Express(NodeJS)无法处理来自Xamarin Android App的Post

时间:2017-08-01 15:15:41

标签: c# node.js express post xamarin

我有一些设备可以与本地服务器上的Express应用程序进行交互。出于原型演示的目的,我试图让它尽可能简单。在许多其他方面,我的本地服务器与/ uploads文件夹中的图像和图像数据进行交互:

(Express / NodeJS代码):

app.route('/uploads')
//Send File to Android
   .get( function (req, res) {
     var images = fs.readdirSync('./uploads');
     console.log(images[images.length-1]);

     var imgpath = path.resolve('./uploads/' + images[images.length-1]);
     res.sendFile(imgpath);
    //res.end('Image List Sent')
   })
 //Receive image chip data from Android
   .post( function (req, res) {
     Console.log("insideit");
     Console.log(req.body);

     res.end('got something?')
   });

此服务器代码正在接收来自C#Android代码的请求。 GET命令工作正常,所以我将省略Xamarin / C#代码。因此,来自Android应用程序的POST命令(在C#/ Xamarin中):

        var rxcui = "198840";
        string _url = string.Format(@"http://10.1.10.194:3000/uploads", rxcui);
        string datastr = "test";
        try
        {
            (new WebClient()).UploadString(_url, datastr);

        }
        catch
        {
            Console.WriteLine("Post Upload Error");
        }
    }

服务器看到post请求,但返回500.它似乎没有正确路由,因为它不会进入我的后处理代码并打印一个简单的测试字符串。有关为什么没有正确处理POST命令的任何想法?

1 个答案:

答案 0 :(得分:0)

尝试用res.send()替换res.end。像这样的东西

.post( function (req, res) {
     Console.log("insideit");
     Console.log(req.body);

     res.send('got something?');
   });

这应该有用。