使用Java应用程序连接PHP脚本时出现问题

时间:2011-04-07 20:21:08

标签: java php urlconnection

我有一个swing应用程序,当用户点击其中的JButton时,它会连接到我网站上的php脚本,向其发送一些数据并从PHP脚本中检索结果。

对于使用此应用程序的100个用户来说,这很好用,但是今天公司的一个用户报告说他不能使用这个...当他点击按钮时应用程序挂起而没有任何反应。

我甚至使用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 个答案:

答案 0 :(得分:2)

你确定PHP脚本没有失败吗?

答案 1 :(得分:-1)

对所有params字符串进行编码,如下所示:

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