1

我的服务器中有一个 php 页面,它接受几个 POST 请求并处理它们。可以说这是一个简单的页面,输出只是一个回显语句。通过从 Java 程序建立的 URLConnection 发送 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.phpresult. 但我只想要 php 脚本的输出。

4

2 回答 2

1

您获得 PHP 源本身而不是它应该呈现的输出的原因是您的本地 HTTP 服务器 - 接收您的目标请求http://localhost/test.php- 决定返回 PHP 源,而不是将 HTTP 请求转发到 PHP 处理器渲染输出。

为什么会发生这种情况?这与您的 HTTP 服务器的配置有关;可能有几个原因。对于初学者,您应该验证 HTTP 服务器的配置。

  • 您在机器上使用哪个 HTTP 服务器?
  • 当您http://localhost/test.php通过浏览器浏览时会发生什么?
于 2012-09-29T09:17:01.760 回答
0

这里的问题不在于 Java 代码 - 问题在于 Web 服务器。您需要调查为什么您的网络服务器没有执行您的 PHP 脚本,而是将其原始发送回去。您可以首先使用一个简单的 PHP scipt 进行测试,该脚本返回一个固定的结果,并使用 GET 请求(来自 Web 浏览器)进行访问。一旦工作正常,您可以使用响应 POST 请求的那个进行测试。

于 2012-09-29T09:16:48.417 回答