0

したがって、この問題を取り除くことはできません。Androidアプリ(API 8)からHTTPサーバー(IIS7.5を搭載したWindows2008サーバー)にXMLファイルとファイルをアップロードする必要があります。.jpg以前の検索から示唆されたように、私はすでにPUT動詞を有効にし、アンインストールWebDavされた&webdavメソッドを有効にしました。さらに、応答を返すことができないため、サーバー側で正しく実行しているかどうかはわかりません。

これが私のコードです

        URL fileurl = new URL("Server Upload Path");

        HttpURLConnection urlConnection = (HttpURLConnection) fileurl
                .openConnection();
        urlConnection.setRequestMethod("PUT");
        urlConnection.setDoOutput(true);
        urlConnection.connect();

        OutputStream os = urlConnection.getOutputStream();

        File upFile = new File("My Local File");
                    //I'm sure the file exists
        FileInputStream fis = new FileInputStream(upFile);
        BufferedInputStream bfis = new BufferedInputStream(fis);
        byte[] buffer = new byte[1024];
        int bufferLength = 0;

        // now, read through the input buffer and write the contents to the
        // file
        while ((bufferLength = bfis.read(buffer)) > 0) {
            os.write(buffer, 0, bufferLength);

        }

私があなたが助ける必要があるかもしれないいくつかの情報を忘れたら申し訳ありません。私IISもアンドロイドに不慣れです。

4

1 に答える 1

-1

標準のマルチパート ファイル アップロード リクエストを試してみませんか (PUT ではなく POST に基づく):

     final static String MULTIPART_BOUNDARY = "------------------563i2ndDfv2rTHiSsdfsdbouNdArYfORhxcvxcvefj3q2f";

 public static void sendFileToServer(String url, File logFiles) {
    HttpURLConnection connection = null;
    OutputStream os = null;
    DataInputStream is = null;
try {
    StringBuilder fullUrl = new StringBuilder(url);
    connection = (HttpURLConnection) new URL(url).openConnection();
    connection.setRequestMethod("POST");
    connection.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + MULTIPART_BOUNDARY);
    connection.setDoOutput(true);
    connection.setDoInput(true);
    connection.setRequestProperty("Connection", "Keep-Alive");
    connection.connect();
    os = new BufferedOutputStream(connection.getOutputStream());
    if(os != null) {
          os.write(("--" + MULTIPART_BOUNDARY + EOL).getBytes());
          os.write(String.format("Content-Disposition:form-data;name=\"UploadedFile\";filename=\"%s\"\r\nContent-Type: application/x-zip-compressed\r\n\r\n", UPLOADED_FILE_NAME).getBytes());

          // Upload file(s) data here and send

          os.write((EOL + "--" + MULTIPART_BOUNDARY + "--" + EOL + EOL).getBytes());
          os.flush();
          os.close();
          os = null;
       }
       if(connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
                // Process server response
       }
   } catch (MalformedURLException e) {


   } catch (IOException e) {


   } catch (Exception e1) {

   } finally {
    try {
        if(os != null) {
            os.close();
        }
    } catch (IOException e) {
        Log.e(TAG, "sendFileToServer exception: close OutputStream", e);
    }
    try {
        if(is != null) {
            is.close();
        }
    } catch (IOException e) {
        Log.e(TAG, "sendFileToServer exception: close InputStream", e);
    }
    if(connection != null) {
        connection.disconnect();
    }
   }
}
于 2013-01-17T17:27:26.223 に答える