我有一个应用程序发出一个POST Request
。OS X - POST reciver(服务器)
我需要我的Mac到阅读该发布请求。
所以我POST
到http://macbook-pro.local/
我需要一些代码,可以读取,并显示/保存我从我的应用程序发送的内容。 (Javascript,PHP,Html?)
我看着RestKit没有任何接收数据的运气。
使用SignalR可以工作,但到OS X的端口对我来说工作不太好。
我有一个应用程序发出一个POST Request
。OS X - POST reciver(服务器)
我需要我的Mac到阅读该发布请求。
所以我POST
到http://macbook-pro.local/
我需要一些代码,可以读取,并显示/保存我从我的应用程序发送的内容。 (Javascript,PHP,Html?)
我看着RestKit没有任何接收数据的运气。
使用SignalR可以工作,但到OS X的端口对我来说工作不太好。
你想要的基本上是一个非常简单的网络服务器,但如果你只想打印出HTTP POST请求中的内容,那么你可以使用内置的'nc'命令逃脱。您可以使用终端上打印出本地10000端口传入的请求的内容,通过在这样的循环中运行“NC”:
while true; do nc -l 10000 < /dev/null ; printf '\n\n\n'; done
然后,您可以去http://localhost:10000
在浏览器中看到的HTTP请求出现在您的终端窗口。网络浏览器会给出一个错误消息,因为'nc'不够聪明,无法回复。
要测试HTTP POST请求,您可以使用“卷曲”:
curl --data "this-is-POST-data" http://localhost:10000
同样,卷曲会给出错误信息,因为“NC”简单地关闭,不给予适当的HTTP应答的连接。你可以有“NC”像这样一个静态的HTTP响应所有请求回复:
while true; do printf 'HTTP/1.0 200 OK\r\nContent-type: text-plain\r\n\r\nHello, world!' | nc -l 10000 ; printf '\n\n\n'; done
如果需要使用端口80,你需要运行(例如,使用“须藤”)“NC”为根。
但是,如果您需要进行任何类型的真实HTTP流量,您将需要获得适当的Web服务器。 OS X带有Apache Web服务器,它可以使用命令“apachectl start”(“apachectl stop”来停止它)启动。 CGI已启用,因此您可以将可执行文件放入/ Library/WebServer/CGI-Executables并使用http://localhost/cgi-bin/filename
访问它们。例如,如果您创建以下CGI脚本:
#!/bin/sh
printf 'Content-type: text/plain\r\n\r\n'
cat > /tmp/post-data
echo OK
称之为“测试”。SH”,并将其放置在CGI-可执行文件的文件夹,然后运行:
chmod +x /Library/WebServer/CGI-Executables/test.sh
然后,只要发送POST请求http://localhost/cgi-bin/test.sh
将POST数据的内容保存到文件/ tmp /数据后在您的计算机上注意
:在所有案例中,“本地主机”,可以用“的MacBook-pro.local”通过网络访问取代,如果这是你的计算机主机名
另外请注意,您的OS X。防火墙权限可能会阻止'nc'和其他软件侦听TCP端口。通常您应该获得权限对话框,但如果您只是获得“权限拒绝“,请在”系统预置“ - >”防火墙“ - >”防火墙选项“中调整防火墙设置。
这些样品线ü可以写解析获取数据。
SBJsonParser *parser = [[SBJsonParser alloc] init];
NSDictionary *dict = [parser objectWithData:urlData];
[dictionary setDictionary:dict];
[parser release];
这些是您可以写入POST数据的示例行。
SBJsonWriter *writer = [[SBJsonWriter alloc] init];
jsonStr = [writer stringWithObject:dictionary];
[writer release];
还有更多的方法在框架中做一些有用的东西。
'nc'函数正在工作,但是.sh文件不保存已发送的帖子,但是我确实收到了回复。我错过了什么吗? .sh文件是否需要某个终端“帮助”? –
使用'while true;做nc -l 10000 dev/null; printf'Content-type:text/plain \ r \ n \ r \ n'cat>/MYDIR/post-data echo OK; done'保存文件,但仅限于Content-type:text/plain而不是'POST'的内容。 –
我得到了我的答案,http://stackoverflow.com/questions/14762083/cgi-script-save-的printf到文件使用末端-OS-X –