繁体   English   中英

Node.js / 快递忽略 iOS JSON POST

[英]Node.js / Express ignores iOS JSON POST

我正在尝试将数据从 iOS 应用程序发布到 Node.js/Express。 我无法让它工作; 当我从我的应用程序尝试时,Node/Express 似乎忽略了我的请求。 但是,如果我导航到相同的 URL 我试图在 web 浏览器中发布,Node/Express 会响应。

这是我处理传入请求的 Node/Express 代码:

var express = require('express');

var app = express.createServer();
app.configure(function(){
  app.use(express.bodyParser());
});

app.get('/', function(req, res) {
        res.write('nothing to see here...');
        res.end();
});

app.get('/test', function(req, res) {
        console.log('handling post!');
        console.log(JSON.stringify(req.body));
        res.end();
});

这就是我尝试将 JSON 发布到节点的方式:

// Create request data.
NSString* jsonData = @"{\"test\" : \"someMoreTest\"}";
NSData* requestData = [jsonData dataUsingEncoding:NSUTF8StringEncoding];

// Create URL to POST jsonData to.
NSString* urlString = @"http://www.mysite.com/test";
NSURL* url = [NSURL URLWithString:urlString];

// Create request.
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url]; 
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody: requestData];

// Send request synchronously.
NSURLResponse* response = [[NSURLResponse alloc] init];
NSError* error = nil;
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

// Check result.    
if (error != nil)
{
    NSLog(@"submitted request!");
}
else {
    NSString* errorLogFormat = @"request failed, error: %@";
    NSLog(errorLogFormat, error);        
}

正如我之前提到的,如果我在浏览器中导航到http://www.mysite.com/test ,我来自 Node 的控制台 output 如下所示:
handling post!
{}

但是,当我尝试从我的 iOS 应用程序发帖时,我没有看到任何控制台应用程序——这几乎就像 Node 从未看到传入的 POST 请求一样。 更令人困惑的是——我无法在 iOS 应用程序端获得任何错误数据——错误是nil 知道我在这里做错了什么吗?

在 Express 的路由框架中,app.get()响应 GET 请求,POST 将被忽略并可能导致 404。

您可以改用 post() 或 any() 。

我无法评论目标 C 部分,但我会建议 Nc -l 0.0.0.0 80 {或另一个端口)看看发生了什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM