我的服务器中有一个php页面,它接受几个POST请求并对它们进行处理。假设这是一个简单的页面,输出只是一个回显语句。使用我从Java程序建立的用于发送POST请求的URLConnection,我尝试使用通过connection.getInputStream()获取的输入流来获取输入。但我得到的只是页面的源代码(整个php脚本),而不是它产生的输出。这里我们将避免套接字连接。这可以通过Url connection或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);
}
}我在result中获得了网页test.php的全部源代码。但我只想要php脚本的输出。
发布于 2012-09-29 17:17:02
之所以获得PHP源本身,而不是它应该呈现的输出,是因为您的本地HTTP服务器--接收以http://localhost/test.php为目标的请求--决定返回PHP源,而不是将HTTP请求转发给processor来呈现输出。
为什么会发生这种情况?这与您的HTTP服务器的配置有关;可能有几个原因。对于初学者,您应该验证HTTP服务器的配置。
http://localhost/test.php时会发生什么?发布于 2012-09-29 17:16:48
这里的问题不是Java代码,而是web服务器的问题。您需要调查为什么您的why服务器不执行PHP脚本,而是将其原始发送回来。您可以使用一个简单的PHP scipt开始测试,它返回一个固定的结果,并使用GET请求(从web浏览器)进行访问。一旦它工作了,你就可以使用响应POST请求的那个来测试了。
https://stackoverflow.com/questions/12651343
复制相似问题