HttpURLConnection, как отправить параметры по почте? - PullRequest
0 голосов
/ 17 января 2012
    String pathToOurFile = "/sdcard/DCIM/Camera/foto.jpg";
    String urlServer = "http://server/upload.php";        
    String lineEnd = "\r\n";
    String twoHyphens = "--";
    String boundary =  "*****";        
    .
    .
    .
    URL url = new URL(urlServer);
    connection = (HttpURLConnection) url.openConnection();

    // Allow Inputs & Outputs
    connection.setDoInput(true);
    connection.setDoOutput(true);
    connection.setUseCaches(false);

    // Enable POST method
    connection.setRequestMethod("POST");

    connection.setRequestProperty("Connection", "Keep-Alive");
    connection.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary);

    outputStream = new DataOutputStream( connection.getOutputStream() );
    outputStream.writeBytes(twoHyphens + boundary + lineEnd);
    outputStream.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + pathToOurFile +"\"" + lineEnd);
    outputStream.writeBytes(lineEnd);

с кодом выше, я загружаю изображение на сервер, но не как передать параметры типа строки через сообщение

кто-нибудь знает?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2012

Я нашел этот блог полезным для написания кода данных из нескольких составных форм:
http://blog.rafaelsanches.com/2011/01/29/upload-using-multipart-post-using-httpclient-in-android/

Не забудьте изменить boundary переменную, чтобы она соответствовала тому, что вы указали в HttpURLConnection, который вы используете для отправки многочастной формы на сервер.

0 голосов
/ 17 января 2012

для каждого параметра, где paramName = paramData:

outputStream.writeBytes(twoHyphens + boundary + lineEnd);
outputStream.writeBytes('Content-Disposition: form-data; name="paramName"' + lineEnd);
outputStream.writeBytes(lineEnd);
outputStream.writeBytes(paramData);
...