私は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 つの質問に関するヘルプが必要です。ありがとうございました。