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

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

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

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

Android

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

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

解決済

3回答

8531閲覧

Android端末内のファイルをサーバーにアップロードする方法

kishi_kun

総合スコア26

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

Android

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

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

0クリップ

投稿2016/10/18 19:45

編集2016/10/19 13:18

Androidの開発を始めたばかりです。
Visual StudioとXamarinを使用しています。

今回アンドロイド端末の中のファイルをIISを用いて用意されたサーバーにアップロードするアプリを制作しようと考えています。

そこでお聞きしたいのですが、ファイルをIISで制作されたサーバにアップロードする方法は何かあるのでしょうか。
調べた限りでは
1.Webclientを使う方法

WebClient wc = new WebClient(); ret = wc.UploadFile(url, file); string result = Encoding.ASCII.GetString(ret); wc.Dispose();

もしくは
2.HttpURLConnectionを使う方法

using Java.net ・・・ HttpURLConnection con = null; URL url = new URL("url"); con = (HttpURLConnection)url.openConnection(); con.RequestMethod("GET"); ・・・ con.connect();

1.は何故か接続出来ないという問題が生じました
2.に関してはRequestMethod { get; set; }といった形で記述する必要がありますが
”POST”メソッドをどこで定義づけなければいけないのか、またファイルパスは
どこで入れればいいのかといったことがわからず頓挫しております。

何か解決策などはございますか。
また、この他になにか方法等ありましたら、お願いします。

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

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

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

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

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

guest

回答3

0

ベストアンサー

ユーザー認証について特に考えない場合、Androidアプリの動作としては以下の2点が達成できればよいでしょう。

  1. ローカルストレージのファイルを取得
  2. HTTP POSTリクエストのボディにファイルをつけて特定のURLをたたく

1について、次のリンクを参考にPCLStorage使えば、ファイルを取得してStreamに変換するところまでいけます。

https://teratail.com/questions/51730

2について、次の記事の前半部分を参考にすればStream化したファイルをPOSTリクエストで送ることができるでしょう。

http://qiita.com/volpe28v@github/items/b86e0bc9db8e42688cc3

投稿2016/10/20 03:23

P3PPP

総合スコア359

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

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

kishi_kun

2016/10/23 12:11

ありがとうございました。 上手いこと出来ました。
guest

0

1.は何故か接続出来ないという問題が生じました

という点が気になりました。
次の2点をまず確認してください。

  1. IIS Express(Visual Studio 2015付属のもの)を利用されていませんか?

IIS Expressではデフォルトでは実行しているPCの外部から接続できません。
Androidエミュレータが同一端末内と判断されるかわかりませんが(されない気がします)まずはそこをご確認ください。
2. Androidでネットワーク通信はバックグラウンド処理しかサポートされていません
UIスレッドで処理していないか確認してください。

またつながらないときは、何らかの例外またはエラーメッセージが出力されていると思います。
質問する際にはそれらも一緒に記載してください。
エスパー辛いです(´・ω・`)

なおRequestMethodは、AndroidではメソッドですがXamarin上ではプロパティではないでしょうか(未確認)。
以下のようにすれば設定できませんか?

cs

1con.RequestMethod = "GET";

ひとまず以上です。

投稿2016/10/20 01:44

nuits.jp

総合スコア346

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

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

kishi_kun

2016/10/23 12:12

ありがとうございました、Xamarin上では確かにプロパティでした。 そのように設定したところ、読み込んでくれました。
guest

0

質問の意図を図りかねます。
Xamarinアプリケーションからput(postの誤りでしょうけれど)してIIS上にファイルが存在すれば、「Android端末内のファイルをサーバーにアップロード」できているのではないでしょうか?

もう少しやりたいことと、できていないことの追記をお願いいたします。
ちょっとこのままでは皆さん回答しかねるかと思います。

投稿2016/10/19 01:04

nuits.jp

総合スコア346

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

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

kishi_kun

2016/10/19 13:19

申し訳ありません、修正いたしました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問