【问题标题】:Java class will not compileJava 类不会编译
【发布时间】:2012-07-13 14:11:18
【问题描述】:

我遇到了几个似乎无法修复的错误...这是示例代码,所以我很困惑发生了什么。错误被注释到它们出现的行的一侧。

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;


public class Connect {
    URL url;
    URLConnection urlConnection;
    DataOutputStream outStream;
    DataInputStream inStream;

    // Build request body
    String body = "fname=" + URLEncoder.encode("Atli", "UTF-8"); //Syntax error on token ";", { expected after this token


    // Create connection
    url = new URL("http://192.168.1.68/test/POST/post.php");
    urlConnection = url.openConnection();
    ((HttpURLConnection)urlConnection).setRequestMethod("POST");
    urlConnection.setDoInput(true);
    urlConnection.setDoOutput(true);
    urlConnection.setUseCaches(false);
    urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    urlConnection.setRequestProperty("Content-Length", ""+ body.length());

    // Create I/O streams
    outStream = new DataOutputStream(urlConnection.getOutputStream());
    inStream = new DataInputStream(urlConnection.getInputStream());

    // Send request
    outStream.writeBytes(body);
    outStream.flush();
    outStream.close();

    // Get Response
    // - For debugging purposes only!
    String buffer;
    while((buffer = inStream.readLine()) != null) {
        System.out.println(buffer);
    }

    // Close I/O streams
    inStream.close();
    outStream.close();

}

给出一个错误:

Syntax error, insert "}" to complete ClassBody

有人看到我没有看到的明显东西吗?

顺便说一句,如果php回显html代码,在运行这个类时,java是否能够理解html代码?

【问题讨论】:

  • 您使用什么 IDE?你试图解决什么问题?请不要只是向我们抛出源代码并请求修复。一般来说,大多数 IDE 都可以轻松生成语法正确的代码。
  • @MichaelSchmeißer 错误在源代码的最后一行...
  • @Alnitak 刚刚看到并编辑了我的评论,但无论如何请提供更多信息。
  • @MichaelSchmeißer 我不是发帖者——我只是告诉你如何找到发帖者的错误。
  • 以后请把错误信息放在你的问题text中,而不是在源代码中。您的错误最初是不可见的,因为您必须滚动源代码才能找到它!

标签: java httpconnection


【解决方案1】:

您不能将代码直接放在类主体中 - 您必须将其包装在成员函数中。

如果这是一个独立的程序,那么成员函数应该是:

public static void main(String[] args) {
    ...
}

【讨论】:

    【解决方案2】:

    如果您希望在构造“Connect”实例时执行该代码,则应将其放入构造函数中。这也修复了您的所有错误。

    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.net.URLConnection;
    import java.net.URLEncoder;
    
    public class Connect {
    
        URL url;
        URLConnection urlConnection;
        DataOutputStream outStream;
        DataInputStream inStream;
    
        @SuppressWarnings("deprecation")
        public Connect() {
            // Build request body
            try {
                String body = "fname=" + URLEncoder.encode("Atli", "UTF-8");
    
    
                // Create connection
                url = new URL("http://192.168.1.68/test/POST/post.php");
                urlConnection = url.openConnection();
                ((HttpURLConnection) urlConnection).setRequestMethod("POST");
    
                urlConnection.setDoInput(true);
                urlConnection.setDoOutput(true);
                urlConnection.setUseCaches(false);
                urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                urlConnection.setRequestProperty("Content-Length", "" + body.length());
    
                // Create I/O streams
                outStream = new DataOutputStream(urlConnection.getOutputStream());
                inStream = new DataInputStream(urlConnection.getInputStream());
    
                // Send request
                outStream.writeBytes(body);
                outStream.flush();
                outStream.close();
    
                // Get Response
                // - For debugging purposes only!
                String buffer;
    
                // DataInputStream.readLine is deprecated
                // use the BufferedReader class instead
                while ((buffer = inStream.readLine()) != null) {
                    System.out.println(buffer);
                }
    
                // Close I/O streams
                inStream.close();
                outStream.close();
            } catch (IOException iOException) {
                // there are many methods that can throw errors in this code,
                // you should catch those errors
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      • 2012-10-06
      • 2012-08-25
      • 1970-01-01
      相关资源
      最近更新 更多