我已经创建了一个apache服务器,我正在linux计算机上托管它。在调用url时,它应该返回一个json值。当我用我的ip而不是托管网页运行下面的代码时,它返回一个json值,但是当我把我的托管链接url(没有ip托管)放在网站后面时,它返回html。我不知道为什么我在使用托管url而不是ip时没有得到json。有什么建议吗?
import java.net. * ;
import java.io. * ;
public class UrlTest {
public static void main(String ar[]) {
try {
//below returns HTML
URL server = new URL("http://servername.ddns.net/test.php");
//below returns JSON val
//URL server = new URL("http://ip/test.php");
BufferedReader in =new BufferedReader(new InputStreamReader(server.openStream()));
String l;
while ((l = in.readLine()) != null)
System.out.println(l);
in.close();
} catch(Exception ex) {
}
}
}
输出片段 servername.ddns.net/test.php
:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<!-- WEB REDIRECTION PROVIDED BY NOIP.COM http://www.noip.com/ -->
<head>
<TITLE>Jaison Server</TITLE>
<meta name="keywords" content="">
<meta name="description" content="">
<link rel="icon" href="http://ip//favicon.ico" type="image/ico">
<link rel="shortcut icon" href="http://ip//favicon.ico">
</head>
<!--
<script language="JavaScript">
if(window != top) {
top.location.href = location.href;
}
</script>
-->
预期输出(也是我给服务器ip时得到的输出):
{"chats":[{"text":"test text 1","sender":"Jaison Thomas"},{"text":"test text2","sender":"Sania Ejaz"}]}
出于安全原因,已替换了包含我的ip或服务器url的代码和输出区域。
按要求的服务器代码
<?php
$servername = "localhost";
$username = "jaison";
$password = "123456";
$dbname = "Chat";
$conn = new mysqli($servername, $username, $password, $dbname);
$sql = "SELECT * FROM Text";
$result = $conn->query($sql);
$arraySQL = array();
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$arraySQL['chats'][] = $row;
}
echo json_encode($arraySQL);
} else {
echo "0 results";
}
$conn->close();
?>
暂无答案!
目前还没有任何答案,快来回答吧!