首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在java中读取https-URL

在java中读取https-URL
EN

Stack Overflow用户
提问于 2013-08-18 18:23:02
回答 2查看 1.8K关注 0票数 2

目前,我正在尝试写一个程序,它返回一个列表,在booklooker.de上的图书列表中的最低价格。网站本身使用的是https,我想这就是问题所在。

代码:

代码语言:javascript
复制
import java.io.*;
import java.net.*;
import javax.net.ssl.HttpsURLConnection;

public class Booklooker {
    public static void main(String[] args) throws Exception{
        // TODO Auto-generated method stub
        BufferedReader in = new BufferedReader(new FileReader("list.txt"));
        PrintStream out = new PrintStream(new FileOutputStream(new File("result.txt")));

        String book = "";
        while((book = in.readLine()) != null){
            book.replace(' ', '+').replace("ä", "%E4").replace("ö", "%F6").replace("ü", "%FC").replace("ß", "%DF");
            URL link = new URL("https://secure.booklooker.de/app/result.php?sortOrder=preis_total&setMediaType=0&titel="+book);
            HttpsURLConnection con = (HttpsURLConnection)link.openConnection();
            BufferedReader site = new BufferedReader(new InputStreamReader(con.getInputStream()));
            while(true){
                String line = "";
                if((line = site.readLine()) == null){
                    out.print("Error\n");
                    break;
                }
                else if(line.indexOf(" €") != -1){
                    int    index   = line.indexOf(" €");
                    double price   = Double.parseDouble(line.substring(index-5, index).trim().replace(',', '.'));
                    index          = line.indexOf(" €", index+12);
                    double postage = Double.parseDouble(line.substring(index-5, index).trim().replace(',', '.'));
                    out.print(price+postage+"\n");
                    break;
                }
            }
            site.close();
        }
        in.close();
        out.close();
        System.out.println("Finished.");
    }
}

以及返回的错误:

代码语言:javascript
复制
Exception in thread "main" java.io.IOException: Invalid Http response
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    at Booklooker.main(Booklooker.java:16)

我不知道到底是哪里出了问题,但HttpsURLConnection似乎有问题。有没有人有主意?

EN

回答 2

Stack Overflow用户

发布于 2013-08-18 18:34:05

您的URL无效。删除尾随的“&”符号。这里没有HTTPS或SSL问题,否则你会得到一个不同的异常。

票数 0
EN

Stack Overflow用户

发布于 2018-09-22 19:48:10

您是否尝试过使用secure.booklooker.de)?(而不是https://www.booklooker.de/当使用“安全”时,你会得到一个重定向,这可能是问题所在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18298088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档