2017-12-12 24 views
-1

基本認証が必要なURLにPOSTリクエストを送信しようとしていますが、私はここで解決策を探しましたが、私のサーブレットは依然として結果を得ていません。私のコード、私はあなたが本当の闘いにいるので、これを解決するために私を助けてくれることを願っています。基本認証付きサーブレットPOSTリクエスト

 //Basic Auth + envoi réponse 
     //backUrl=http://....../ws 
     String webPage = backUrl ; 
     String name = "CLT_NAGT"; 
     String password = "[email protected]"; 

     String authString = name + ":" + password; 
     System.out.println("auth string: " + authString); 
     byte[] authEncBytes = Base64.encodeBase64(authString.getBytes()); 
     String authStringEnc = new String(authEncBytes); 
     System.out.println("Base64 encoded auth string: " + authStringEnc); 

     //Connexion 

     URL url = new URL(webPage); 
     HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection(); 
     urlConnection.setRequestMethod("POST"); 
     urlConnection.setDoOutput(true); 
     urlConnection.setRequestProperty("Authorization", "Basic " + authStringEnc); 
     urlConnection.setRequestProperty("Content-Type", "application/json"); 
     urlConnection.connect(); 

     //Envoi du JSON 

     OutputStreamWriter outputWriter = new OutputStreamWriter(urlConnection.getOutputStream()); 
     outputWriter.write(Json);//Json is a json.toString() object 
     outputWriter.flush(); 
     outputWriter.close(); 

私のブラウザには空白のページがあり、私の食は例外やエラーをスローしません。どうすればこの問題を解決できますか?

+0

は、応答を読んでいますか? – Kayaman

+0

返信いただきありがとうございます。入力ストリームリーダーについて話していますか? – Onizuka

+0

ブラウザで何の応答も得られない場合は、クライアント側のコードで何を期待していますか? – Ravi

答えて

0

これは私のサーブレット(サーバ側)

public class ServletAO extends HttpServlet { 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 

    @Override 
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) 
    throws ServletException, IOException { 

    resp.setContentType("application/json"); 

    //récupération du resultat de l'exécution de l'AO 
    PA865AccessObject ao = (PA865AccessObject) req.getAttribute("ao"); 
    String aoResp = ao.getMessage(); 
    String rep=""; 
    DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); 
    Date today = Calendar.getInstance().getTime(); 
    String reportDate = df.format(today); 
    //récupération des paramètres de la requete 
     //  String nomPrenom = req.getParameter("nomPrenom"); 
    String adrLigne1 = req.getParameter("adresse1"); 
    String adrLigne2 = req.getParameter("adresse2"); 
    String adrLigne3 = req.getParameter("adresse3"); 
    String adrLigne4 = req.getParameter("adrLigne4"); 
    String adrLigne5 = req.getParameter("adrLigne5"); 
    String codePostal = req.getParameter("codepostal"); 
    String ville = req.getParameter("ville"); 
    String pays = req.getParameter("pays"); 
    String numContrat = req.getParameter("numContrat"); 
    String numAbonne = req.getParameter("numAbonne"); 
    String idRequest = req.getParameter("idRequest"); 
    String backUrl = req.getParameter("backurl"); 


    if(aoResp.indexOf("MISE A JOUR EFFECTUEE")>-1) 
    { 
     rep="2-Taken"; 
    } 
    else 
    { 
     rep="4-Dropped"; 
    } 

    //Fichier JSON 


    JSONObject technical= new JSONObject(); 
    try { 
     technical.put("topic", "fr-sicl-Address_Contact_Change_Request-v1"); 
     technical.put("organization", "fr"); 
     technical.put("sa","SICLIENT"); 
     technical.put("nature", "business"); 
     technical.put("sk", "0"); 
     technical.put("version", "1"); 
     technical.put("source_event_id", "ID"); 
     technical.put("event_id", "IDCalcule"); 
     technical.put("event_date_time", reportDate); 
     technical.put("emission_date_time", reportDate); 
    } catch (JSONException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 


    System.out.println(technical.toString()); 



    JSONObject payload= new JSONObject(); 
    try { 
     payload.put("distrib_customer_ids", numAbonne); 
     payload.put("party_customer_id", "A verifier"); 
     payload.put("contract_id",numContrat); 
     payload.put("correlation_id", idRequest); 
     payload.put("request_id", idRequest); 
     payload.put("request_issued_date_time", reportDate); 
     payload.put("request_event_type", rep); 
     payload.put("request_event_reason", "PA865"); 
     payload.put("source_system", "CIARD"); 
     payload.put("party_row_id", "A verifier"); 
     payload.put("replaced_address_date_time", reportDate); 
    } catch (JSONException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 


    System.out.println(payload.toString()); 




    JSONObject newAdress = new JSONObject(); 

    try { 
     newAdress.put("recipient_line1", adrLigne1); 
     newAdress.put("line2", adrLigne2); 
     newAdress.put("line3",adrLigne3); 
     newAdress.put("street_line4", adrLigne4); 
     newAdress.put("line5", adrLigne5); 
     newAdress.put("zip_locality_line6", ""); 
     newAdress.put("country_label_line7", ""); 
     newAdress.put("zip_postal_code", codePostal); 
     newAdress.put("locality", ville); 
     newAdress.put("country", pays); 
    } catch (JSONException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 

    System.out.println(newAdress.toString()); 

    String Json = 
    technical.toString()+payload.toString()+newAdress.toString(); 


    //Basic Auth + envoi réponse 

     String webPage = backUrl ; 
     String name = "CLT_NAGT"; 
     String password = "[email protected]"; 

     String authString = name + ":" + password; 
     System.out.println("auth string: " + authString); 
     byte[] authEncBytes = Base64.encodeBase64(authString.getBytes()); 
     String authStringEnc = new String(authEncBytes); 
     System.out.println("Base64 encoded auth string: " + authStringEnc); 

     //Connexion 

     URL url = new URL(webPage); 
     HttpURLConnection urlConnection = 
     (HttpURLConnection)url.openConnection(); 
     urlConnection.setRequestMethod("POST"); 
     urlConnection.setDoOutput(true); 
     urlConnection.setRequestProperty("Authorization", "Basic " + 
     authStringEnc); 
     urlConnection.setRequestProperty("Content-Type", 
     "application/json"); 
     urlConnection.connect(); 

     //Envoi du JSON 

     OutputStreamWriter outputWriter = new 
     OutputStreamWriter(urlConnection.getOutputStream()); 
     outputWriter.write(""); 
     outputWriter.flush(); 
     outputWriter.close(); 

     //resp.flushBuffer(); 

    } 



    } 
+0

このセクションは部分的な投稿ではない回答に属します。また、サーブレットのコードを見ることもできません。サーブレットからの応答があるかどうかを教えてください。この部分をデバッグし、サーバーログをチェックし、postmanのような既存のクライアントを試し、サーバー側の実装を検証する必要があります – Ravi

関連する問題