gpt4 book ai didi

JAVA:代码中为空JSON,浏览器中填充JSON

转载 作者:可可西里 更新时间:2023-11-01 16:36:53 24 4
gpt4 key购买 nike

我正在尝试从 url 获取一个 json 对象:

http://www.alfanous.org/jos2?action=search&unit=aya&fuzzy=True&query=حم

但是,当我使用该 url 运行我的代码时,我得到一个空的 json,当我从浏览器请求 url 时,josn 被填充。

我的代码有什么问题?

    URL url = new URL("http://www.alfanous.org/jos2?action=search&unit=aya&fuzzy=True&query=حم");
URLConnection conn = url.openConnection();
InputStream is = conn.getInputStream();
Scanner scan = new Scanner(is);
while (scan.hasNextLine()) {
System.out.println(scan.nextLine());
}

我也试过了

    // Create URL object
URL obj = new URL("http://www.alfanous.org/jos2?action=search&unit=aya&fuzzy=True&query=حم");

// Communicate with the URL by HTTP
HttpURLConnection con = (HttpURLConnection) obj.openConnection();

// optional default is GET
con.setRequestMethod("GET");

// add request header
con.setRequestProperty("User-Agent", "Mozilla/5.0");

// Getting response data
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());

最佳答案

解决方案是在将 url 字符串传递给 URL 构造函数之前对其进行编码。

String urlstring = "http://www.alfanous.org/jos2?action=search&unit=aya&fuzzy=True&query=حم";
URLEncoder.encode(urlstring, "UTF-8");
URL url = new URL(urlstring);

然后继续使用原始帖子中显示的先前代码。

URLConnection conn = url.openConnection();
InputStream is = conn.getInputStream();
Scanner scan = new Scanner(is);
while (scan.hasNextLine()) {
System.out.println(scan.nextLine());
}

道德是..我应该在使用之前对 url 进行编码!

关于JAVA:代码中为空JSON,浏览器中填充JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35685580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com