我想将Android应用中的数据发送到我的服务器。 在客户端,意思是应用程序,我可以创建JSON对象并将其发送到服务器。 问题是,我不知道如何在服务器端“处理”它。我希望我的服务器要做的就是接收JSON,解析它,并将它显示给我。就是这样。
我知道这是一个非常模糊的问题,但我真的不知道从哪里开始,如果有人能给我一个完整的教程,我会很高兴。
谢谢!
答案 0 :(得分:1)
使用PHP和json_decode() http://php.net/manual/en/function.json-decode.php
这是一个如何处理数据的简单示例:
// get json
$input = json_decode($_GET["json"]);
// get values
$firstname = $input->firstName;
$surename = $input->lastName;
$age = intval($input->age);
// check values
if (isset($firstname) && !empty($firstname) &&
isset($surename) && !empty($surename) &&
isset($age) && is_numeric($age))
{
// do something
echo "Hello ".htmlspecialchars($firstname)." ".htmlspecialchars($surename)."!<br>";
echo "You are $age years old! Wow.";
}
else
{
echo "Some values are missing or incorrect";
}
我在这个例子中使用了GET参数。如果您有更大的数据,请使用POST而不是GET。
实施例: 网址:http://localhost/test/index.php?json= {“firstName”:“John”,“lastName”:“Doe”,“age”:23} 输出:你好John Doe! 你今年23岁了!哇。
但是:确保在应用程序中编码JSON数据。在我的例子中,浏览器就是这样做的。
答案 1 :(得分:0)
// Some groovy code to dump an incoming request
import com.sun.net.httpserver.*;
HttpServer server = HttpServer.create(new InetSocketAddress(2228),0)
server.createContext('/', { HttpExchange exchange ->
println 'got a request'
println 'requestHeaders '+exchange.requestHeaders
println 'requestBody '+exchange.requestBody.text
exchange.sendResponseHeaders(200,0);
exchange.responseBody.write('hello from groovy land.'.bytes)
exchange.responseBody.close();
println 'all done'
} as HttpHandler)
server.start();
答案 2 :(得分:0)
您甚至可以在服务器上使用一些shell脚本CGI文件。这是一个将一些固定数据返回给JSONP请求进行测试的示例。
#!/bin/bash
#
# Handle a JSONP request for data returning a fake queue status result.
read -r -d '' DATA <<'EOF'
{
name: "TESTHOST",
status: "running",
items: [
{id:"4",status:"failed",title:"anadin map 2",user:"pat",progress:100},
{id:"2",status:"running",title:"silicon map",user:"tim",progress:52},
{id:"3",status:"queued",title:"anadin map",user:"pat",progress:0},
{id:"6",status:"queued",title:"neon calibration",user:"ian",progress:0}
]
}
EOF
CB=$(echo $QUERY_STRING | sed -n 's/.*jsoncallback=\([^&]*\).*$/\1/p')
DATA=${DATA/52/$(expr $RANDOM % 100)}
DATA="${CB}(${DATA});"
echo -e "content-type: application/json\r"
echo -e "content-length: ${#DATA}\r"
echo -e "x-test: $CB\r"
echo -e "\r"
echo "$DATA"
替换一些请求数据的解析并根据需要返回。