3

サーバーへのファイルの送信に関連する1つのアプリを実装しています。

httppostメソッドを使用してファイルをサーバーに送信しようとしています。

休閑コードを使用してSDカードからファイルを取得しています。

File root = Environment.getExternalStorageDirectory();
String pathToOurFile = root+"111";

私のコードは休閑地のように見えます。

StringBuilder response = new StringBuilder();
try {
  HttpPost post = new HttpPost();
  post.setURI(uri);
  List params = new ArrayList();
  params.add(new BasicNameValuePair("paramName", "paramValue"));
  post.setEntity(new UrlEncodedFormEntity(params));
  DefaultHttpClient httpClient = new DefaultHttpClient();
  HttpResponse httpResponse = httpClient.execute(post);
  if (httpResponse.getStatusLine().getStatusCode() == 200) {
    Log.d(APP_TAG, "HTTP POST succeeded");
    HttpEntity messageEntity = httpResponse.getEntity();
    InputStream is = messageEntity.getContent();
    BufferedReader br = new BufferedReader(new InputStreamReader(
    openFileInput(pathToOurFile)));
    String line;

    while ((line = br.readLine()) != null) {
     Log.v("info",",,,"+line);
     response.append(line);
     }
   } else {
     Log.e(APP_TAG, "HTTP POST status code is not 200");
   }
} catch (Exception e) {
  Log.e(APP_TAG, e.getMessage());
}

しかし、それはきちんと目覚めていません。

解決策を知っているなら私を助けてください

前もって感謝します。

4

1 に答える 1

3

これはうまくいくはずですが、私はコードをテストしていません。

 import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.mime.MultipartEntity;
    import org.apache.http.entity.mime.content.FileBody;
    import org.apache.http.entity.mime.content.StringBody;
    import org.apache.http.impl.client.DefaultHttpClient;

    ...

        public static void uploadFile() throws Exception {
            HttpClient httpclient = new DefaultHttpClient();
            try {
                HttpPost httppost = new HttpPost(uri);
                String pathToOurFile = root+"111";

                File f = new File(pathToOurFile);
                FileBody bin = new FileBody(f);


                MultipartEntity reqEntity = new MultipartEntity();
                reqEntity.addPart("file", bin);
                reqEntity.addPart("paramName", paramValue);

                httppost.setEntity(reqEntity);

                HttpResponse response = httpclient.execute(httppost);
                HttpEntity resEntity = response.getEntity();

                String postResponse = response.getStatusLine();
        }

    }
于 2012-11-09T05:53:53.137 に答える