Kilkenny95
Messages postés157Date d'inscriptionlundi 24 septembre 2018StatutMembreDernière intervention31 août 2020
-
28 nov. 2019 à 11:36
Bonjour,
Je fais une application web avec Eclipse:
J'ai écrit une classe HttpCOnnexion() qui interroge une API (avec dedans les paramètre pour passer à travers mon proxy etc) qui fonctionne très bien.
J'ai une autre classe Parsing() qui prends en argument la réponse de l'api que j'obtiens depuis HttpConnexion() qui fonctionne aussi et qui parse mon JSON.
J'ai 3e classe SendHttp() qui est une calsse Servlet qui envoie des truc sur ma page JSP.
Cependant j'aimerai transférer ce que j'obitiens après le parsing de mon JSON. DOnc j'ai voulu instancié mes deux calsse et les mettre dans ma 3e classe pour pouvoir les afficher sur ma page web.
Cepandant, lorsque j'instancie HttpCOnnexion() et Parsing(), bah mon serveur plante, impossible de lancer mon serveur avec ce bout de code. Parcontre, quand j'enlève, aucune erreur. Il semblerai que mon serveur ne veuille pas se lancer si j'ajoute des exception dans la classe de mon servlet.
Si quelqu'un pouvait m'aider merci.
SendHttp() :
package com.sdzee.servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.JSONException;
import com.sdzee.servlets.Parsing;
public class SendHttp extends HttpServlet {
public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{
/*
String message1 = p.tabName[0];
request.setAttribute("test1", message1);
System.out.println(p.tabName[0]);
String message = "Json parsed = ";
request.setAttribute( "test", message );
*/
this.getServletContext().getRequestDispatcher( "/WEB-INF/test.jsp" ).forward( request, response );
}
public void Test() throws JSONException {
/* HttpConnexion h = new HttpConnexion();
Parsing p = new Parsing(h.responseContent);
System.out.println("from Test Classe : " + p.tabId[0]);
*/
}
}
HttpConnexion() :
package com.sdzee.servlets;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Authenticator;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.CookiePolicy;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.MalformedURLException;
import java.net.PasswordAuthentication;
import java.net.Proxy;
import java.net.URL;
import org.json.JSONArray;
import org.json.JSONException;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class HttpConnexion {
public static HttpURLConnection connection;
final GsonBuilder gsonBuilder = new GsonBuilder();
final Gson gson = gsonBuilder.create();
//static String tabName[] = new String[1000];
//static String tabId[] = new String[1000];
public StringBuffer responseContent = new StringBuffer();
public HttpConnexion() throws JSONException{
BufferedReader reader;
String line;
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy-sgt.si.socgen", 8080));
Authenticator authenticator = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return (new PasswordAuthentication("xxxxxxx",
"xxxxxxx".toCharArray()));
}
};
Authenticator.setDefault(authenticator);
try{
CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ALL));
URL url = new URL("https://jsonplaceholder.typicode.com/users");
/* connection.setUseCaches(false);
connection.setDoOutput(true);
connection.addRequestProperty("Authorization", API_KEY );
connection.setRequestMethod("GET");
*/
connection = (HttpURLConnection) url.openConnection(proxy);
connection.setRequestProperty("charset","utf-8");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Accept-Language","en-US,en;q=0.8");
connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
connection.setUseCaches(false);
connection.setDoOutput(true);
//connection.setRequestProperty("Authorization", API_KEY );
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");
connection.connect();
connection.setFollowRedirects(false);
System.out.println(connection.getResponseMessage());
int status = connection.getResponseCode();
System.out.println("status" + status);
if (status > 299){
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while((line = reader.readLine()) != null){
responseContent.append(line);
}
reader.close();
}
else {
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while((line = reader.readLine()) != null){
responseContent.append(line);
}
reader.close();
}
//System.out.println(responseContent);
} catch (MalformedURLException e){
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
}
}
Parsing() :
package com.sdzee.servlets;
import org.json.JSONArray;
import org.json.JSONException;
public class Parsing {
public String tabName[] = new String[1000];
public String tabId[] = new String[1000];
public Parsing(StringBuffer responseContent) throws JSONException{
String reponseBrute = new String(responseContent.toString());
System.out.println("réponse brute = " + responseContent);
JSONArray jsonarray = new JSONArray(reponseBrute);
for (int i = 0; i < jsonarray.length(); i++) {
org.json.JSONObject jsonobject = jsonarray.getJSONObject(i);
String name = jsonobject.getString("name");
String id = jsonobject.getString("id");
tabName[i]=name;
tabId[i]=id;
}
}
}