Проблема подключения к PHP-скрипту с помощью Java-приложения - PullRequest
2 голосов
/ 08 апреля 2011

У меня есть приложение Swing, которое, когда пользователь нажимает на JButton, подключается к php-скрипту на моем веб-сайте, чтобы отправить ему некоторые данные и получить результаты из PHP-скрипта.

Это работало нормально для сотен пользователей, которые использовали это приложение, но сегодня один из пользователей в компании сообщил, что он не может использовать это ... Когда он нажимает кнопку, приложение зависает, и ничего не происходит.

Я даже использую UncaughtExceptionHandler для обработки любых непредвиденных исключений в приложении, но ничего не выбрасывается. Я думал, что это может быть что-то в сети его компании или используемый порт, но я не уверен. Любые предложения, почему это может произойти?

Вот мой код:

String part1 = "...";  // Message part 1.
String part2 = "...";  // Message part 2.

//1. Encode the message to suite the URL path requirements :
    String params = URLEncoder.encode( "part1", "UTF-8" ) + "=" + URLEncoder.encode( part1, "UTF-8" );
    params += "&" + URLEncoder.encode( "part2", "UTF-8" ) + "=" + URLEncoder.encode( part2, "UTF-8" );

//2. Connect to the website page :
    URL url = new URL( "http://www.website.com/page.php" );
    URLConnection conn = (URLConnection) url.openConnection();
    conn.setConnectTimeout( 20000 );
    conn.setDoOutput( true );
    conn.setDoInput( true );
    conn.connect();

//3. Call the page and send the parameters to it :
    OutputStreamWriter out = new OutputStreamWriter( conn.getOutputStream() ); 
    out.write( params );
    out.flush();
    out.close();

//4. Get the result :
    Object contents = conn.getContent();
    InputStream is = (InputStream) contents;
    StringBuffer buf = new StringBuffer();
    int c;
    while( ( c = is.read() ) != -1 ) {
      buf.append( (char) c );
    }

Ответы [ 2 ]

2 голосов
/ 08 апреля 2011

Вы уверены, что это не PHP-скрипт, который терпит неудачу?

0 голосов
/ 08 апреля 2011

Кодировать все параметры String так:

String params = "part1" + "=" + part1;
params += "&" + "part2" + "=" + part2;
params = URLEncoder.encode(params, "UTF-8")
...