1

簡単なことですが、クラスで URL/ネットワーキングを学んでいて、ウェブページに何かを表示しようとしています。後で、MySQL DB に接続します... とにかく、ここに私のプログラムがあります:

import java.net.*; import java.io.*;


public class asp {

    public static URLConnection
connection;

    public static void main(String[] args) {

        try {

        System.out.println("Hello World!"); // Display the string.
        try {
        URLConnection connection = new URL("post.php?players").openConnection();
    }catch(MalformedURLException rex) {}
        InputStream response =
connection.getInputStream();
        System.out.println(response);
    }catch(IOException ex) {}

    } }

正常にコンパイルされます...しかし、実行すると次のようになります。

「こんにちは世界」
スレッド「メイン」での例外 java.lang.NullPointerException at asp.main(asp.java:17)

17 行目: InputStream 応答 = connection.getInputStream();

ありがとう、ダン

4

2 に答える 2

3

URL の形式が正しくありませんが、その例外を飲み込んでしまったのでわかりません。

URL("post.php?players")

この URL は完全ではありません。ホスト (おそらくlocalhostあなたのため?) とプロトコル部分がありません。http不正な形式の URL 例外を回避するには、プロトコルを含む完全な URL を提供する必要があります。

new URL("http://www.somewhere-dan.com/post.php?players")

最初にURLConnectionに関する Sun のチュートリアルを使用してください。そのスニペットは少なくとも機能することが知られています。その例のURL を有効なURL に置き換えると、コードの一部が機能するはずです。

于 2010-07-07T23:29:56.400 に答える
2

URL が無効なためです。接続を開こうとしているページの完全なアドレスを入力する必要があります。あなたは不正なURL例外をキャッチしていますが、それはその時点で「接続」オブジェクトがないことを意味します. 最初の catch ブロックの後に追加の閉じ括弧も表示されます。null ポインターを取得する行と system.out.println を catch ブロックの上に配置する必要があります。

import java.net.*; import java.io.*;

public class asp {

    public static URLConnection connection;

    public static void main(String[] args) {

        try {
        System.out.println("Hello World!"); // Display the string.
            try {
            URLConnection connection = new URL("http://localhost/post.php?players").openConnection();
            InputStream response = connection.getInputStream();
            System.out.println(response);

            }catch(MalformedURLException rex) {
                System.out.println("Oops my url isn't right");
        }catch(IOException ex) {}
    }    
}
于 2010-07-07T23:29:02.197 に答える