【问题标题】:Getting HTML response instead of Json response获取 HTML 响应而不是 Json 响应
【发布时间】:2016-06-15 09:10:56
【问题描述】:

我收到的是 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


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢。添加“接受:应用程序/json”有效。 :)
    • 谢谢你的回答,对我帮助很大!
    【解决方案2】:

    对于java

    将请求属性设置如下:

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

    它将解决您面临的问题。

    【讨论】:

    • 虽然这个答案可能是正确的,但它并没有解释“为什么”代码会为稍后可能会遇到类似问题的读者解决问题。请清楚地描述答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 2018-12-19
    • 2012-07-30
    • 2021-05-10
    • 2019-09-30
    • 2014-03-25
    相关资源
    最近更新 更多