java - URL类里面的方法openConnection方法报错
PHPz
PHPz 2017-04-18 10:29:37
0
4
420

我按照教程来却发现总是报错;
代码如下
private String url; //请求的地址

public httpThread(String url) {
    this.url = url;
}
public String doGet() {
    URL httpUrl = null;
    try {
        httpUrl = new URL(url);
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
    HttpURLConnection httpURLConnection;
    httpURLConnection = (HttpURLConnection) new httpUrl.openConnection();
    try {
        httpURLConnection.setRequestMethod("GET");      //请求get方法
    } catch (ProtocolException e) {
        e.printStackTrace();
    }
    httpURLConnection.setReadTimeout(5000);
    //接受返回来的数据
    BufferedReader reader = null;
    try {
        reader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
    } catch (IOException e) {
        e.printStackTrace();
    }
    String str;
    StringBuffer sb = new StringBuffer();
    try {
        while ((str = reader.readLine()) != null) {
            sb.append(str);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return sb.toString();
}
![图片描述][2]
PHPz
PHPz

学习是最好的投资!

membalas semua(4)
Peter_Zhu

Tutorial jenis apakah ini? Gunakan penyemak imbas untuk melihat sama ada permintaan itu berfungsi Mungkin pengarang mempunyai akses semasa menulis tetapi tidak kemudian

小葫芦

Mengapa terdapat

baharu di hadapan httpUrl?
黄舟
    public URLConnection openConnection() throws java.io.IOException {
        return handler.openConnection(this);
    }

Ini ialah cara untuk mengalih keluar yang baharu

Peter_Zhu
URL httpUrl = null;
HttpURLConnection httpURLConnection;
try {
    httpUrl = new URL(url);
    httpURLConnection = (HttpURLConnection) httpUrl.openConnection();
    httpURLConnection.setRequestMethod("GET");      //请求get方法
    httpURLConnection.setReadTimeout(5000);
} catch (MalformedURLException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
} catch (ProtocolException e) {
    e.printStackTrace();
}

Tukar beberapa ayat pertama sehingga "//Terima data yang dikembalikan" ke atas dan lihat semula
Dua soalan, satu, kenapa tambah baru sebelum memanggil kaedah Adakah anda mahu setiap hari? ralat dilaporkan, gerakkan tetikus ke atas atau letakkan kursor padanya dan tekan Ctrl+F1 untuk melihat lebih dekat kandungan Dalam kebanyakan kes, anda boleh melihat sebabnya
Kedua, pembolehubah di luar blok kod cuba pada mulanya adalah batal dan diberi nilai dalam percubaan Blok kod tangkapan tidak mengendalikan pengecualian dengan betul Ia hanya menggunakan printStackTrace untuk memukul pengecualian Kemudian apabila anda memanggil kaedah yang merujuk pembolehubah kemudian, NullPointException akan dilaporkan . Ini ialah objek httpUrl, atau tulis ayat-ayat tersebut ke dalam cuba , jika ada masalah, jangan jalankannya dahulu Tidak bagus. Pemula mesti belajar mengendalikan pengecualian dengan betul, dan membangunkan tabiat yang baik seperti menulis komen Anda akan mengikuti Saya tidak menukar kod lagi, dan saya tidak menulis kod pemprosesan, tetapi ideanya seperti ini, jangan' t printStackTrace untuk membuat masalah, log log dan balingan, jika tidak, kod anda akan berada dalam persekitaran pengeluaran pada masa hadapan, operasi dan penyelenggaraan Ini semua tentang telepati, bukan dimarahi hingga mati.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan