2013-07-30 62 views
1

我正嘗試創建一個將圖片上傳到服務器的應用程序。我收到來自服務器的響應,415 unsupported media type。我的代碼如下,我應該做什麼改變?在Android上嘗試上傳圖片時不支持的媒體類型錯誤

class RetreiveFeedTask extends AsyncTask<String, Void, String> { 

    protected String doInBackground(String... url){ 
     try { 
      ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
      BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable(); 
      Bitmap bitmap = drawable.getBitmap(); 
      bitmap.compress(CompressFormat.JPEG, 50, bos); 
      byte[] data = bos.toByteArray(); 

      HttpClient httpClient = new DefaultHttpClient(); 
      HttpPost postRequest = new HttpPost("http://10.155.103.167:9090/RestServer/rest/todos"); 

      String fileName = String.format("File_%d.png", new Date().getTime()); 
      ByteArrayBody bab = new ByteArrayBody(data, fileName); 

      ContentBody mimePart = bab; 

      // File file= new File("/mnt/sdcard/forest.png"); 
      // FileBody bin = new FileBody(file); 

      MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); 
      reqEntity.addPart("file", bab); 
      postRequest.setEntity(reqEntity); 
      int timeoutConnection = 60000; 
      HttpParams httpParameters = new BasicHttpParams(); 
      HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection); 
      int timeoutSocket = 60000; 
      HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); 
      HttpConnectionParams.setTcpNoDelay(httpParameters, true); 
      HttpResponse response = httpClient.execute(postRequest); 

      BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8")); 
      String sResponse; 
      StringBuilder s = new StringBuilder(); 
      System.out.println("Response: " + response.getStatusLine()); 
      while ((sResponse = reader.readLine()) != null) { 
       s = s.append(sResponse); 
      } 
      //txt.setText("NEW TEXT"+s); 
     } catch (Exception e) { 
      // handle exception here 
      e.printStackTrace(); 
      System.out.println(e.toString()); 
     } 
     return null; 
    } 
} 
+0

與'postRequest.setHeader(「內容類型」,「應用/ JSON」)嘗試;在此之前你'請求發送請LogCat。 – g00dy

+0

嗨,感謝了很多,但現在我得到500內部錯誤 – Akshay

+0

如在這裏看到:http://pcsupport.about.com/od/findbyerrormessage/a/500servererror.htm有很多可能的錯誤與500內部相關,所以請粘貼新的LogCat等 – g00dy

回答

1

我也面臨着同樣的問題設置的內容類型應該解決的問題

headers.put("Content-Type", "application/json"); 
相關問題