HttpURLConnection параметр передачи проблемы в Android? - PullRequest
0 голосов
/ 25 мая 2011

HI

Я использую следующую часть кода для загрузки файла на сервер, вместе с этим файлом мне нужно отправить какой-то параметр относительно этого файла, я не знаю, как отправить параметр вместе с файлом, но я могу загрузить файл.

               FileInputStream fileInputStream = new FileInputStream(sourceFile);
       URL url = new URL(upLoadServerUri);
       conn = (HttpURLConnection) url.openConnection(); 

       conn.setDoInput(true); // Allow Inputs
       conn.setDoOutput(true); // Allow Outputs
       conn.setUseCaches(false); // Don't use a Cached Copy
       conn.setRequestMethod("POST");

       conn.setRequestProperty("Connection", "Keep-Alive");
       conn.setRequestProperty("ENCTYPE", "multipart/form-data");

       conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);


       dos = new DataOutputStream(conn.getOutputStream());

       dos.writeBytes(twoHyphens + boundary + lineEnd);
       dos.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\""+ fileName + "\"" + lineEnd);
       dos.writeBytes(lineEnd);

       bytesAvailable = fileInputStream.available(); 



       bufferSize=(int)sourceFile.length();


       buffer = new byte[1024];
       int len;
       int state=0;
       while((len=fileInputStream.read(buffer))>0){
           state=state+len;
           dos.write(buffer);
           publishProgress(state);
       }

       dos.writeBytes(lineEnd);
       dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);

       // Responses from the server (code and message)
       serverResponseCode = conn.getResponseCode();
       String serverResponseMessage = conn.getResponseMessage();


       // close streams
       Log.i("Upload file to server", fileName + " File is written");
       fileInputStream.close();
       dos.flush();
       dos.close();
      } catch (MalformedURLException ex) {
       ex.printStackTrace();
       Log.e("Upload file to server", "error: " + ex.getMessage(), ex);
      } catch (Exception e) {
       e.printStackTrace();
      }
    //this block will give the response of upload link
      try {
       BufferedReader rd = new BufferedReader(new InputStreamReader(conn
         .getInputStream()));

       while ((line = rd.readLine()) != null) {
        Log.i("Huzza", "RES Message: " + line);


       }
       rd.close();
      } catch (IOException ioex) {
       Log.e("Huzza", "error: " + ioex.getMessage(), ioex);

      }

, если кто-нибудь знает проблему, помогите мне.

1 Ответ

0 голосов
/ 25 мая 2011

Использовать http-клиент с составными объектами. для этого вам понадобятся дополнительные библиотеки.

вот хороший пост о том, как это сделать:

MultipartEntity

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...