2013-04-16 2 views
0

У меня есть несколько PHP-скриптов, сохраненных в каталоге/var/www /. Я могу запустить их из своего браузера, но Java их не видит.PHP-скрипт, не найденный Java, но работает в браузере

Вот выход из браузера:

enter image description here

И от 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); 

?> 

Кто-нибудь знает, почему это может случиться?

+0

Кажется, что вам не хватает '.php', где вы вызываете скрипт. – NilsH

+0

У вас может быть опечатка, PHP-файл в браузере говорит 'get_print_profile_ids', вы вызываете' get_profile_ids' ... – akluth

+0

У меня был весь этот код, работающий на другой машине, я не думаю, что .php требуется. .. – TomSelleck

ответ

5

Вы пропускаете .php, изменение:
HttpPost post = new HttpPost("http://localhost/" + scriptName);
в
HttpPost post = new HttpPost("http://localhost/" + scriptName + ".php");

+0

Похоже, что это была проблема! Я не понимаю, однако, у меня был весь этот код, работающий на другой машине, и я никогда не ставил .php в ... – TomSelleck

+0

Возможно, ваша другая машина была настроена по-другому, чтобы автоматически добавлять php на сервер. –

1

вот подсказка:

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

регистрирует

DB: Error executing script: get_profile_ids 

изменить тестовый вызов

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

и вы, вероятно, получить успешный результат.

1

Ваш код Java вызывает get_profile_ids в то время как ваш скриншот браузер показывает get_profile_ids.php. Измените код Java, чтобы позвонить get_profile_ids.php.

+0

К сожалению, это была опечатка в моем тестовом коде, исправлена – TomSelleck

Смежные вопросы