首页 > 解决方案 > org.codehaus.jackson.JsonParseException: Unexpected end-of-input: OBJECT 的预期关闭标记(来自 [Source: java.io.StringReader@6279cee3;

问题描述

我正在尝试从 URL HttpURLConnection 获取 JSON 响应。下面是我写的一段代码,但是当我运行代码时,有时我会收到响应,有时我会收到“ org.codehaus.jackson.JsonParseException: Unexpected end-of-input: expected close marker for OBJECT (来自 [来源:java.io.StringReader@6279cee3;行:1,列:0]"

public String process() throws MalformedURLException, JsonGenerationException, JsonMappingException, IOException {
  System.out.println("MDN Value is " + mdnValue);
  HttpURLConnection urlConnection = null;

//    lc.log(Level.FINE, "Final URI of Spirent with MDN " + urlString);

  try {
    URL uteUrl = new URL(urlString);
    urlConnection = (HttpURLConnection) uteUrl.openConnection();
    urlConnection.setRequestMethod("GET");
    urlConnection.setRequestProperty("Accept", "application/json");
    urlConnection.setRequestProperty(
      "X-API-KEY", "ZM5eQui8wqBwg9omaldyJ7jq1Sow69plvuf7kXkas1tjPVcWuBjguP0KWRnjfupb");
    urlConnection.connect();

  // response updation in log
  BufferedReader reader = null;
  try {
    if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {

      InputStream in = new BufferedInputStream(urlConnection.getInputStream());
      reader = new BufferedReader(new InputStreamReader(in))
      String input;
      StringBuilder b = new StringBuilder();

      while ((input = reader.readLine()) != null) {
        b.append(input);
      }
      return b.append(input).toString();

    } else {
      reader = new BufferedReader(new InputStreamReader(urlConnection.getErrorStream()));
      String response = reader.readLine();
      return new ObjectMapper().reader(ABC.class).readValue(response);
    }
  } finally {
    if (reader != null) {
      reader.close();
    }
  }
} finally {
  if (urlConnection != null) {
    urlConnection.disconnect();
  }
}
}

输出:org.codehaus.jackson.JsonParseException:意外的输入结束:对象的预期关闭标记(来自 [来源:java.io.StringReader@6279cee3;行:1,列:0])在 [来源:java. io.StringReader@6279cee3; line: 1, column: 3] at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:1433) at org.codehaus.jackson.impl.JsonParserMinimalBase._reportError(JsonParserMinimalBase.java:521) at org.codehaus.jackson .impl.JsonParserMinimalBase._reportInvalidEOF(JsonParserMinimalBase.java:454) at org.codehaus.jackson.impl.JsonParserBase._handleEOF(JsonParserBase.java:473) at org.codehaus.jackson.impl.ReaderBasedParser._skipWSOrEnd(ReaderBasedParser.java:1496 ) 在 org.codehaus.jackson.map.deser.BeanDeserializer 的 org.codehaus.jackson.impl.ReaderBasedParser.nextToken(ReaderBasedParser.java:368)。

标签: javaurlexceptionhttpurlconnectionjsonparser

解决方案


推荐阅读