Java URLConnection - PullRequest
       6

Java URLConnection

1 голос
/ 08 июля 2010

Простые вещи, я изучаю URL / сеть в своем классе и пытаюсь что-то отобразить на веб-странице. Позже я собираюсь подключить его к БД MySQL ... в любом случае, вот моя программа:

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) {}

    } }

Он компилируется нормально ... но когда я запускаю его, я получаю:

Hello World!
Исключение в потоке "main" java.lang.NullPointerException в asp.main (asp.java:17)

Строка 17: InputStream response = connection.getInputStream ();

Спасибо, Dan

Ответы [ 2 ]

3 голосов
/ 08 июля 2010

У вас есть неверно сформированный URL , но вы не узнаете, потому что вы проглотили его исключение !

URL("post.php?players")

Этот URL не завершен, он пропускает хост (может быть localhost для вас?) И часть протокола, скажем http, поэтому, чтобы избежать исключения искаженного URL-адреса, вы должны предоставить полный URL-адрес, включая протокол

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

Сначала используйте учебники Sun для URLConnection .Этот фрагмент, по крайней мере, известен как работающий, если вы замените URL в этом примере на действительный URL, у вас должен быть рабочий фрагмент кода.

2 голосов
/ 08 июля 2010

Это потому, что ваш URL недействителен.Вам нужно указать полный адрес страницы, к которой вы пытаетесь открыть соединение.Вы ловите malformedurlexception, но это означает, что в этой точке нет объекта «соединения».У вас есть дополнительная закрытая скобка после первого блока захвата, он также появляется.Вы должны поместить строку, для которой вы получаете нулевой указатель, и 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) {}
    }    
}
...