2016-03-08 14 views
7

Sto usando i componenti Httpclient-4.5.2.jar e httpcore-4.4.4.jar HttpClient e sto ricevendo l'errore.HTTPClient "main" java.lang.NoSuchFieldError: INSTANCE su org.apache.http.conn.ssl.SSLConnectionSocketFactory. <clinit>

Exception in thread "main" java.lang.NoSuchFieldError: INSTANCE 
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144) 
at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:966) 

Il mio codice sorgente come segue.

try { 
     System.out.println("came to try catch"); 
     HttpClient httpClient = HttpClientBuilder.create().build(); 
     HttpPost request = new HttpPost("https://bizz.mobilezz.lk/apicall/loanprepaidapi/v1"); 
     StringEntity params =new StringEntity("{\"mobile\":\"776037285\",\"path\":\"IVV\",\"loanAmount\":\"200000\"}"); 
     request.addHeader("content-type", "application/json"); 
     request.addHeader("Authorization", "Bearer casmk34233mlacscmaacsac"); 

     request.addHeader("Accept", "application/json");   
     request.setEntity(params); 
     HttpResponse response = httpClient.execute(request); 
     System.out.println("response is :"+response.getStatusLine()); 

    } catch (Exception e) { 
     e.printStackTrace(); 

Please help me per sbarazzarsi di questo errore. Sto cercando di inviare la richiesta in modalità post e ottenere una risposta JSON.

+0

possibile duplicato di: http://stackoverflow.com/questions/32793830/error-while-trying-to-use-an-api-java-lang-nosuchfielderror-instance – HRgiger

+0

ho provato dal link che tu hai dato. Non ha funzionato. C'è un modo per controllare la compatibilità dei file jar? Molti post dicono di verificare la compatibilità dei file jar. Ho ottenuto questi file jar da httpcomponents-client-4.5.2-bin. Ma anche questo non ha funzionato. – dmaprasad

+0

scusa, non lo so ma cerco di trovare un tutorial di lavoro. cioè http://crunchify.com/how-to-create-restful-java-client-using-apache-httpclient-example/, come si vede qui nel pom.xml httpcore e httpclient compatibile con le versioni: 4.4-beta1 – HRgiger

risposta

2

Ho trovato una risposta alla mia domanda e la pubblicazione per il vostro riferimento.

HttpClient client = new DefaultHttpClient(); 
     HttpPost post = new HttpPost(
       "https://bizz.mobilezz.lk/apicall/loanprepaidapi/v1"); 

     JSONObject json = new JSONObject(); 
     StringEntity params = new StringEntity("{\"msisdn\":\"" + mobile 
       + "\",\"channel\":\"SDD\"}"); 

     new StringEntity(json.toString()); 
     post.addHeader("Host", "mife.dialog.lk"); 
     post.addHeader("content-type", "application/json"); 
     post.addHeader("Authorization", "Bearer " + access_token); 
     post.addHeader("Accept", "application/json"); 

     // System.out.println("status code is:" + status); 
     post.setEntity(params); 
     HttpResponse response = client.execute(post); 
     int status = response.getStatusLine().getStatusCode(); 
     System.out.println("status code is :" + status); 
     resCode = Integer.toString(status); 
     if (status != 401) { 
      if (status != 409) { 
       BufferedReader rd = new BufferedReader(
         new InputStreamReader(response.getEntity() 
           .getContent())); 
       String response1 = readAll(rd); 
       System.out.println(response1); 
       JSONObject obj = new JSONObject(response1); 
       resCode = obj.getString("resCode"); 
       resDesc = obj.getString("resDesc"); 
       System.out.println(resCode); 
       System.out.println(resDesc); 
      } 
     } 
     System.out.println("reason code is :" + resCode); 
+0

Ho avuto lo stesso problema e questa soluzione ha funzionato per me. Grazie. – Charitha

Problemi correlati