私は1つのAndroidアプリケーションを開発しており、アプリケーションで画像データをサーバーに送信したいと考えています。だから私はプットリクエストを使用しています。jsonオブジェクトで画像データを送信したくありません。HTTP put リクエストの本文として画像データを送信したいだけです。また、ヘッダー コンテンツの長さも設定したいと考えています。ということで以下の方法でやってみました。
@Override
      protected Void doInBackground(Void... unused) {
         HttpClient hc = new DefaultHttpClient();
            String message;
            HttpPut p = new HttpPut("abc.com");
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            bitmap.compress(CompressFormat.JPEG, 100, bos);
            byte[] data = bos.toByteArray();
    try {
              p.setEntity(new StringEntity(data.toString()));
              p.setHeader("Content-Length", Long.toString(data.length));
                //p.setHeader("Content-Length", "0");
                HttpResponse resp = hc.execute(p);
                if (resp != null) 
                {
                    if (resp.getStatusLine().getStatusCode() == 204)
                    {
                    }
                }
                Log.d("Status line", "" + resp.getStatusLine().getStatusCode());
            } catch (Exception e) {
                e.printStackTrace();
        }
        return null;
    }
    @Override
    protected void onProgressUpdate(Void... unsued) {
    }
    @Override
    protected void onPostExecute(Void result) {
        try {
            if (dialog.isShowing())
                dialog.dismiss();
            Log.i("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "before exception "+result);
        } catch (Exception e) {
            Log.i("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "inside catch ");
            Toast.makeText(getApplicationContext(),"Error"+e,
                    Toast.LENGTH_LONG).show();
            Log.e(e.getClass().getName(), e.getMessage(), e);
        }
    }
}
ですから、私の心には2つの不明な質問があります。1) マルチパートを使用せず、json オブジェクトを使用せずに画像データをサーバーに送信したい。リクエストの本文に設定するだけです。どうやってするか?2) ヘッダー部分にコンテンツの長さを設定したい。どうやってするか?コンテンツの長さを設定しようとすると、システムエラーが発生しますclient protocol exception
これらの 2 つの質問に関するヘルプが必要です。ありがとうございました。