I am trying to GET JSON response from the URL, HttpURLConnection. Below is the piece of code I wrote but when I run the code, Sometimes I am getting a response, and other times I am getting " org.codehaus.jackson.JsonParseException: Unexpected end-of-input: expected close marker for OBJECT (from [Source: java.io.StringReader@6279cee3; line: 1, column: 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();
}
}
}
OUTPUT: org.codehaus.jackson.JsonParseException: Unexpected end-of-input: expected close marker for OBJECT (from [Source: java.io.StringReader@6279cee3; line: 1, column: 0]) at [Source: 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) at org.codehaus.jackson.impl.ReaderBasedParser.nextToken(ReaderBasedParser.java:368) at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:579) at org.codehaus.jackson.map.ObjectReader._bindAndClose(ObjectReader.java:768) at org.codehaus.jackson.map.ObjectReader.readValue(ObjectReader.java:460)