I'm trying to make a http get request which returns a json response. I need some of the values from the json response to be stored in my session. I have this:
public String getSessionKey(){
BufferedReader rd = null;
StringBuilder sb = null;
String line = null;
try {
URL url = new URL(//url here);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
rd = new BufferedReader(new InputStreamReader(connection.getInputStream()));
sb = new StringBuilder();
while ((line = rd.readLine()) != null)
{
sb.append(line + '\n');
}
return sb.toString();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "";
}
This returns the JSON in a string:
{ "StatusCode": 0, "StatusInfo": "Processed and Logged OK", "CustomerName": "Mr API"}
I need to store StatusCode and CustomerName in the session. How do I deal with returning JSON with java?
Thanks
解决方案
You can use Gson. Here is the code to help you:
Map jsonMap;
Gson gson = new Gson();
Type outputType = new TypeToken>(){}.getType();
jsonMap = gson.fromJson("here your string", outputType);
Now you know how to get from and put those in session. You need to include Gson library in classpath.