2016-04-29 7 views
1

Ich möchte Antwort von der httppost Anfrage erhalten. Ich bekomme die Netzwerkantwort wie 200,405,404, aber ich bekomme nicht den Wert, der vom Server kommt. Ich versuche viel, aber ich bekomme keine Antwort. Bitte helfen ...Wie bekomme ich Antwort von HttpPost

Mein Code ist unten-

private void UploadPost() {

 SharedPreferences sharedPreferences1 = getSharedPreferences("DATA", Context.MODE_PRIVATE); 
     String ID = sharedPreferences1.getString("id", ""); 
     @SuppressWarnings("deprecation") 
     HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost(Url.addOffer_url); 

     Log.e("uploadFile", "Source File Path " + picturePath); 
     File sourceFile1 = new File(picturePath); 
     if (!sourceFile1.isFile()) { 
      Log.e("uploadFile", "Source File Does not exist"); 
      imgUploadStatus = "Source File Does not exist"; 
     } 


     try { 
      AndroidMultiPartEntity entity = new AndroidMultiPartEntity(); 
      File sourceFile = new File(picturePath); 
      MultipartEntity entity1 = new MultipartEntity(
        HttpMultipartMode.BROWSER_COMPATIBLE); 
      // Adding file data to http body 


      entity.addPart("retailer_id", new StringBody(ID)); 
      entity.addPart("title", new StringBody(addoffertitle)); 
      entity.addPart("description", new StringBody(addofferdesc)); 
      entity.addPart("keyword", new StringBody(addofferkeyword)); 
      entity.addPart("offer_id", new StringBody(OfferListing_Id)); 
      // entity.addPart("payment_status",new StringBody(paymentStatus)); 
      // if(!picturePath.equals("")) 
      entity.addPart("offer_image", new FileBody(sourceFile)); 
      /* else 
       entity.addPart("old_pic",new StringBody(Image_Path));*/ 
      httppost.setEntity(entity); 

      Log.d("httppost success", "httppost"); 

      //Run a api for net conn check 
      try { 

       String responseString= new String(); 
       HttpResponse response = httpclient.execute(httppost); 
       HttpEntity entity8 = response.getEntity(); 
       if(entity8 !=null){ 
        responseString = EntityUtils.toString(entity8, "UTF-8"); 
        System.out.println("Response body: " + responseString); 
       } 



       statusCode = 200; 

      } catch (FileNotFoundException e) { 
       Log.e("log_tag1", "Error FileNotFoundException new service" + e.toString()); 
       result = "FileNotFoundException"; 
      } catch (SocketTimeoutException e) { 
       Log.e("log_tag2", "SocketTimeoutException new service " + e.toString()); 
       result = "SocketTimeoutException"; 
      } catch (Exception e) { 
       Log.e("log_tag3", "Error converting OtherException new service " + e.toString()); 
       result = "OtherException"; 
      } 


      if (statusCode == 200) { 
       // Server response 
       responseString = "success"; 



       Log.e("complete success", "Response from server: " + responseString); 
      } else if (statusCode == 404) { 
       responseString = "page not found"; 


       Log.e("complete page not found", "Response from server: " + responseString); 

      } else if (statusCode == 405) { 
       responseString = "no net"; 


       Log.e("complete no net", "Response from server: " + responseString); 

      } else { 
       responseString = "other"; 


       Log.e("complete other", "Response from server: " + responseString); 

      } 

     } catch (Exception e) { 
      responseString = e.toString(); 
      responseString = "other"; 
      Log.e("complete", "Response from server: " + responseString); 

     } 

    } 

Ich möchte Antwort von der httppost.i das Netzwerk Antwort zu bekommen, aber ich nicht bekommen, der Wert, der vom Server kommt. Ich versuche viel, aber ich bekomme keine Antwort. Bitte helfen Sie ...

+0

Welche Netzwerk-Response-Code erhalten Sie? Ist es 200, 400 oder was ist es? – ishmaelMakitla

+1

Hallo danke für deine Antwort. @ IshmaelMakitla Ich bekomme 200 Antwort vom Server Ich möchte Json Wert erhalten. –

+0

'System.out.println (" Antwort: "+ s);'. Das sollte 'System.out.println (" Response: "+ s.toString());' sein. Was druckt es? Das ist kein Wert, den der Server zurückgibt, sondern ein Text. Aus Linien bestehen. Eine Seite. Wahrscheinlich eine HTML-Seite oder ein JSON-Text. – greenapps

Antwort

0

Versuchen Sie mit EntityUtils anstelle der BufferedReader. Zum Beispiel so etwas wie:

String responseString= new String(); 
HttpResponse response = httpclient.execute(httppost); 
HttpEntity entity = response.getEntity(); 
if(entity !=null){ 
    responseString = EntityUtils.toString(entity, "UTF-8"); 
} 

Blick auf die gewählte Antwort here - es zeigt, wie Antworttext für eine 400-HTTP-Antwort zu erhalten. Sie können auch this example betrachten. Wenn Sie mit JSON Nutzlast arbeiten, vielleicht möchten Sie vielleicht prüfen, Volley mit - here are some examples for PUT, POST, and GET requests using Volley

+0

Hi @ IshmaelMakitla, kann keine Antwort ohne Volley bekommen? Wirklich müssen Antwort gegen Servertreffer erhalten? folgen Sie diesem Link http://www.androidhive.info/2014/12/android-uploading-camera-image-video-to-server-with-progress-bar/ – Suman

+0

Sie können eine Antwort erhalten, ohne Volley zu verwenden, ich schlug nur Volley vor weil ich es einfacher finde - aber versuche die vorgeschlagene Antwort und lass es mich wissen, wenn du immer noch keine Antwort bekommst. – ishmaelMakitla

+0

Sorry @ishmaelMakitla Ich erhalte keine Antwort –

0

Sie können versuchen, diese

InputStream inputStream = httpResponse.getEntity().getContent(); 
InputStreamReader inputStreamReader = new InputStreamReader(inputStream); 
BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 
StringBuilder stringBuilder = new StringBuilder(); 
String bufferedStrChunk = null; 
while((bufferedStrChunk = bufferedReader.readLine()) != null){ 
     stringBuilder.append(bufferedStrChunk); 
} 

Statt

HttpEntity entity8 = response.getEntity(); 
       if(entity8 !=null){ 
        responseString = EntityUtils.toString(entity8, "UTF-8"); 
        System.out.println("Response body: " + responseString); 
       } 
Verwandte Themen