我的服务器中有一个php页面,它接受几个POST请求并处理它们。让我们说它是一个简单的页面,输出只是一个回声的声明。使用URLConnection我从Java程序建立发送POST请求,我试图使用通过connection.getInputStream()
获得的输入流来获取输入。但我得到的只是页面的来源(整个php脚本),而不是它产生的输出。我们将在这里避免套接字连接。这可以通过Url连接或HttpRequest完成吗?怎么样?
class htttp{
public static void main(String a[]) throws IOException{
URL url=new URL("http://localhost/test.php");
URLConnection conn = url.openConnection();
//((HttpURLConnection) conn).setRequestMethod("POST");
conn.setDoOutput(true);
conn.setDoInput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write("Hello");
wr.flush();
wr.close();
InputStream ins = conn.getInputStream();
InputStreamReader isr = new InputStreamReader(ins);
BufferedReader in = new BufferedReader(isr);
String inputLine;
String result = "";
while( (inputLine = in.readLine()) != null )
result += inputLine;
System.out.print(result);
}
}
我在test.php
中获得了网页result
的完整来源。但我只想要php脚本的输出。
答案 0 :(得分:1)
你得到PHP源本身而不是它应该呈现的输出的原因是你的本地HTTP服务器 - 接收针对http://localhost/test.php
的请求 - 决定回送PHP源,而不是转发对PHP处理器的HTTP请求以呈现输出。
为什么会这样?这与您的HTTP服务器的配置有关;可能有几个原因。对于初学者,您应该验证HTTP服务器的配置。
http://localhost/test.php
时会发生什么?答案 1 :(得分:0)
这里的问题不是Java代码 - 问题在于Web服务器。您需要调查您的网络服务器未执行PHP脚本但将其原始发送回原因的原因。您可以先使用一个简单的PHP scipt进行测试,该scipt返回一个固定的结果,并使用GET请求(来自Web浏览器)进行访问。一旦工作正常,您可以使用响应POST请求的那个进行测试。