質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

2回答

1793閲覧

【DefaultHttpClient】以外の方法を使った画像ファイルのpost送信方法を教えて下さい。

hiroppii

総合スコア38

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2015/11/09 11:41

お世話になります。
Android開発にて、検索しても解決しなかったので質問させて頂きます。

やりたい事:ギャラリーもしくはカメラから画像を持ってきて、画像ファイルをpost送信、あるいはget送信したいと思っています。

画像ファイルをpost送信に付いては、【DefaultHttpClient】を使った方法に付いては色々なサイトで紹介されているのですが、現在、その方法は非推奨となっており、行き詰まっております。

【DefaultHttpClient】に代わる方法で、画像ファイルをpost送信できる方法を教えて頂きたいです。

ギャラリーもしくはカメラから画像を持って来るまでは、下記のサイトを参考にさせて頂きました。
http://qiita.com/Yuki_Yamada/items/137d15a4e65ed2308787

また、取得出来たUriを具体的にどうやってpost送信できる状態まで、持っていくのかもわからない状態です。

以上、二点、ご教授頂けたらと思います。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

public class PictureActivity extends AppCompatActivity {

private Uri m_uri; private static final int REQUEST_CHOOSER = 1000; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_picture); setViews(); } private void setViews() { Button button = (Button) findViewById(R.id.buttonPanel); button.setOnClickListener(button_onClick); } private View.OnClickListener button_onClick = new View.OnClickListener() { @Override public void onClick(View view) { showGallery(); } }; private void showGallery() { //カメラの起動Intentの用意 String photoName = System.currentTimeMillis() + ".jpg"; ContentValues contentValues = new ContentValues(); contentValues.put(MediaStore.Images.Media.TITLE, photoName); contentValues.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg"); m_uri = getContentResolver() .insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues); Intent intentCamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intentCamera.putExtra(MediaStore.EXTRA_OUTPUT, m_uri); // ギャラリー用のIntent作成 Intent intentGallery; if (Build.VERSION.SDK_INT < 19) { intentGallery = new Intent(Intent.ACTION_GET_CONTENT); intentGallery.setType("image/*"); } else { intentGallery = new Intent(Intent.ACTION_OPEN_DOCUMENT); intentGallery.addCategory(Intent.CATEGORY_OPENABLE); intentGallery.setType("image/jpeg"); } Intent intent = Intent.createChooser(intentCamera, "画像の選択"); intent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] {intentGallery}); startActivityForResult(intent, REQUEST_CHOOSER); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == REQUEST_CHOOSER) { if(resultCode != RESULT_OK) { // キャンセル時 return ; } Uri resultUri = (data != null ? data.getData() : m_uri); if(resultUri == null) { // 取得失敗 return; } // ギャラリーへスキャンを促す MediaScannerConnection.scanFile( this, new String[]{resultUri.getPath()}, new String[]{"image/jpeg"}, null ); // 画像を設定 ImageView imageView = (ImageView)findViewById(R.id.image_view); imageView.setImageURI(resultUri); } }

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

ありがとうございます。
yonaさんの回答を参考にさせて頂きました。

また、具体的なコード等は自身の他の質問と類似していた為、こちらでは省かせて頂きます。

投稿2016/03/06 11:27

編集2016/03/06 11:30
hiroppii

総合スコア38

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

投稿2015/11/09 13:11

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hiroppii

2015/11/10 12:12

回答有難う御座います。 上記の方法を使うのは分かったのですが、具体的にはどう質問した時に使ったコードと紐づければ良いのでしょうか? Android開発初心者の為、具体的なコードが思いつきません。 ご教授頂く事は、出来ませんでしょうか?
yona

2015/11/10 13:05 編集

開発初心者を言い訳にして、自分で調べるのをやめないでください。初心者だからこそ調べてください。 ・AsyncTaskを継承し、通信処理を非同期処理で実装する。 ・ギャラリーからの戻りで通信処理を呼び出す。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問