0

修正できないと思われるエラーがいくつか発生しています...これはサンプルコードであるため、何が起こっているのか混乱しています。エラーは、それらが表示される行の横にコメント化されます。

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コードを理解できますか?

4

2 に答える 2

13

コードをクラス本体に直接配置することはできません。メンバー関数内にコードをラップする必要があります。

これがスタンドアロンプ​​ログラムであることが意図されている場合、そのメンバー関数は次のようになります。

public static void main(String[] args) {
    ...
}
于 2012-07-13T14:13:00.877 に答える
0

「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
        }
    }
}
于 2012-07-13T14:23:26.653 に答える