获取 HTML 响应而不是 Json 响应

问题描述 投票:0回答:3

我收到的是 HTML 响应而不是 JSON 响应。我正在使用以下代码,并且收到 bf.readLine() 形式的 HTML 响应。下面的代码有问题还是这个API有问题?

String uri = "http://192.168.77.6/Ivr_ABN_API/?id=" + mobile;
    URL url;
    Gson json = null;
    try {
        url = new URL(uri);
        json = new Gson();

        HttpURLConnection connection;
        access_token = db.getAccessTokenFromDB();
        connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("GET");

        System.out.println("URL:" + uri);

        connection.setRequestProperty("Content-Type", "application/json");
        int status = connection.getResponseCode();
        resCode = Integer.toString(status);
        System.out.println("status is " + status);
        InputStream in = connection.getInputStream();
        System.out.println("inputStreamer " + in);
        BufferedReader bf = new BufferedReader(new InputStreamReader(
                connection.getInputStream()));
        System.out.println("bf.readLine() - " + bf.readLine());

        while ((output = bf.readLine()) != null) {
            JSONObject obj = new JSONObject(output);
            System.out.println("output is " + output);
            resCode = obj.getString("resCode");
            resDesc = obj.getString("COUNT");

        }
java json httpurlconnection
3个回答
13
投票

也许尝试发送标头 Accept: application/json

如果这不起作用,请查看 API 文档,看看是否还应该发送其他内容来返回 json。


1
投票

对于

java

将请求属性设置如下:

con.setRequestProperty("Accept","application/json")

它将解决您面临的问题。


0
投票

如果有人停在这里,通常收到 HTML 作为响应是由于

not calling a valid request method to your API in your fetch requests

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.