2016-06-01 14 views
0

senden Ich habe eine URL als https://www.xyz.in/ws/bt mit Anforderungsparameter als Token, Blockrequest und Format. Beispiel JSON „blockrequest“ String istWie JSON-Objekt als Anforderungsparameter in einer URL mithilfe von HttpsURLConnection in Android


{"source\":\"1492\",\"destination\":\"1406\",\"availableTripId\":\"100008417320611112\",\"boardingPointId\":\"1129224\",\"inventoryItems\":[{\"seatName\":\"21\",\"ladiesSeat\":\"false\",\"passenger\":{\"name\":\"passenger_name_1\",\"title\":\"MR\",\"gender\":\"MALE\",\"age\":\"23\",\"primary\":true,\"idType\":\"PANCARD\",\"email\":\"[email protected]_name.com\",\"idNumber\":\"BEPS1111B\",\"address\":\"passenger_address\",\"mobile\":\"xxxxxxxxxx\"},\"fare\":\"320.00\"},{\"seatName\":\"22\",\"ladiesSeat\":\"true\",\"passenger\":{\"name\":\"passenger_name_1\",\"title\":\"MS\",\"gender\":\"FEMALE\",\"age\":\"23\",\"primary\":false,\"idType\":\"\",\"email\":\"\",\"idNumber\":\"\",\"address\":\"\",\"mobile\":\"\"},\"fare\":\"320.00\"}]} 

Wie kann ich diese Daten als Anforderungsparameter in der URL mit HttpsURLConnection senden.

+0

Mit „als Anfrageparameter“ Sie als HTTP-GET-Anforderung bedeuten? – Robert

+0

Nein, durch HTTPS-POST-Anfrage. – QEMU

+1

http://Stackoverflow.com/a/2938787/793943 überprüfen Sie diese Ans – Sush

Antwort

0

Wenn Sie Apache HTTP Client verwenden. Hier ist ein Codebeispiel

protected void send(final String json) { 
     Thread t = new Thread() { 

      public void run() { 
       Looper.prepare(); //For Preparing Message Pool for the child Thread 
       HttpClient client = new DefaultHttpClient(); 
       HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); //Timeout Limit 
       HttpResponse response; 

       try { 
        HttpPost post = new HttpPost(URL); 
        StringEntity se = new StringEntity(json.toString()); 
        se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); 
        post.setEntity(se); 
        response = client.execute(post); 

        /*Checking response */ 
        if(response!=null){ 
         InputStream in = response.getEntity().getContent(); //Get the data in the entity 
        } 

       } catch(Exception e) { 
        e.printStackTrace(); 
        createDialog("Error", "Cannot Estabilish Connection"); 
       } 

       Looper.loop(); //Loop in the message queue 
      } 
     }; 

     t.start();  
    } 

Dies ist imp Linie in obigem Beispielcode:

StringEntity se = new StringEntity(json.toString()); 
        se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); 
        post.setEntity(se); 

Versuche this.I Hoffnung es Arbeit.

+0

Apache HTTP-Client ist veraltet und wurde in API 23 (Android 6) entfernt. – Robert

+0

Verwenden Sie stattdessen die Volley-Bibliothek –

+0

Ja richtig. Verwenden Sie Volley oder Nachrüstung. so können Sie einfach JSON Körper in Anfrage senden. –

0

Sie so etwas tun könnte:

URL url = new URL(yourUrl); 
byte[] postData = yourJsonString.getBytes("UTF-8"); 
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 

conn.setRequestMethod("POST"); 
conn.setRequestProperty("Content-Type", "application/json"); 
conn.setDoOutput(true); 

conn.getOutputStream().write(postDataBytes); 

(Zum Lesen der Antwort der getInputStream() Methode der Verbindung verwenden)