我正在使用Mozilla Firefox中的REST客户端插件练习PHP并在服务器上发送请求。我还尝试了不同的工具在chrome上检查我是否在服务器上接收数据但不幸的是我没有收到任何GET或POST。我能够收到的只是查询字符串。
我甚至没有在服务器端编写任何代码只是简单的打印命令。
<?php
var_dump($_REQUEST);
var_dump($_GET);
var_dump($_POST);
print_r($_GET);
print_r($_POST);
echo "working";
?>
这是INPUT
> This is test message.
这是输出。
array(0) {
}
array(0) {
}
array(0) {
}
Array
(
)
Array
(
)
working
就像说的那样,唯一有效的是查询字符串。我使用的这个服务器是免费的网络服务,不知道这是否有帮助。
这是我想要接收的Android代码。
byte[] jsonBytes = json.getBytes("UTF-8");
URL url = new URL("http://androidapplicati.base.pk/");
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("POST");
urlConnection.setDoOutput(true);
urlConnection.setFixedLengthStreamingMode(jsonBytes.length);
urlConnection
.setRequestProperty("Content-Type", "application/json");
urlConnection.setRequestProperty("Content-Length",
String.valueOf(jsonBytes.length));
out = urlConnection.getOutputStream();
out.write(jsonBytes);
out.flush();
urlConnection.getInputStream().read();
答案 0 :(得分:0)
首先,请检查您是否使用任何方法GET或POST传递任何值。 如是 这不是你的编码问题。这是您的托管服务器问题。我的建议从不使用任何免费服务器,因为没有技术支持而且它们不安全..
你的代码工作正常只需更改托管服务器
答案 1 :(得分:0)
这是一个POST
示例,您可以通过直接访问或测试获取
file_get_contents()
。
发布(卷曲):
//domain and file to send request to
$url = 'http://yourdomain.com/file.php';
//parameters to send
$params = array(
'field1' => 'value1',
'field2' => 'value2'
);
$data = http_build_query($params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
//return the data
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
//incase there is a redirect
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$return = curl_exec($ch);
//close connection
curl_close($ch);
$output = json_decode($return, TRUE);
var_dump($output);
在服务器端:
echo json_encode($_REQUEST);