我有一個應用程序發出一個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 –