0

我的 /var/www/ 目录中保存了几个 PHP 脚本。我可以从我的浏览器运行它们,但 Java 看不到它们。

这是浏览器的输出:

在此处输入图像描述

来自Java:

DB: Error executing script: get_profile_ids
HTTP/1.1 404 Not Found [Date: Tue, 16 Apr 2013 11:52:40 GMT, Server: Apache/2.2.22 (Ubuntu), Vary: Accept-Encoding, Content-Length: 288, Keep-Alive: timeout=5, max=100, Connection: Keep-Alive, Content-Type: text/html; charset=iso-8859-1]
DB: Result: 

我的Java代码:

public class ServerTest {

    public static void main(String [] args) {

        callPHPScript("get_print_profile_ids", new ArrayList<NameValuePair>());

    }

    public static String callPHPScript(String scriptName, List<NameValuePair> parameters) {
        HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost("http://localhost/" + scriptName);
        String line = "";
        StringBuilder stringBuilder = new StringBuilder();
        try {
            post.setEntity(new UrlEncodedFormEntity(parameters));

            HttpResponse response = client.execute(post);
            if (response.getStatusLine().getStatusCode() != 200)
            {
                System.out.println("DB: Error executing script: " + scriptName);
                System.out.println(response.toString());
            }
            else {
                BufferedReader rd = new BufferedReader(new InputStreamReader(
                    response.getEntity().getContent()));
                line = "";
                while ((line = rd.readLine()) != null) {
                    stringBuilder.append(line);
                }
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("DB: Result: " + stringBuilder.toString());
        return stringBuilder.toString();
    }
}

还有我的 PHP 脚本:

<?php
include('connect_db.php');
include('tools.php');

$query = 'SELECT id FROM fingerprint_profiles';

$result = mysql_query($query);
echo($result);

?>

有谁知道为什么会发生这种情况??

4

3 回答 3

5

您缺少 .php,更改
HttpPost post = new HttpPost("http://localhost/" + scriptName);

HttpPost post = new HttpPost("http://localhost/" + scriptName + ".php");

于 2013-04-16T12:01:26.007 回答
1

这是提示:

System.out.println("DB: Error executing script: " + scriptName);

正在记录

DB: Error executing script: get_profile_ids

将您的测试电话更改为

callPHPScript("get_profile_ids.php", new ArrayList<NameValuePair>());

你很可能会得到一个成功的结果。

于 2013-04-16T12:01:21.760 回答
1

您的 Java 代码get_profile_ids在您的浏览器屏幕截图显示时调用get_profile_ids.php。更改您的 Java 代码以调用get_profile_ids.php

于 2013-04-16T12:01:37.127 回答