Android ASP.NET(MVC2)で作成したWebAPIに接続する その2
前回までに作成したWebAPIにAndroidアプリからアクセスするプログラムを作ります。
MainActivtyを作成し、ボタンを1つ配置します。
MainActivtyのレイアウトMainActivty
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginTop="21dp"
android:onClick="button1Click"
android:text="button1" />
</RelativeLayout>
MainActivtyのコード
package com.example.helloandroid;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
/*
* button1クリック時の処理
*/
public void button1Click(View view) {
//送信する文字列
StringBuilder testXml = new StringBuilder();
testXml.append("");
testXml.append("");
testXml.append("");
testXml.append("1 ");
testXml.append("田中 ");
testXml.append(" ");
testXml.append("");
testXml.append("2 ");
testXml.append("山田 ");
testXml.append(" ");
testXml.append("");
testXml.append("3 ");
testXml.append("野原 ");
testXml.append(" ");
testXml.append(" ");
//DefaultHttpClientを生成
HttpClient httpClient = new DefaultHttpClient();
//HttpPostを生成
HttpPost req = new HttpPost("http://IPアドレス:ポート番号/AndroidTest/Test");
//パラメータ作成
List<NameValuePair> params = new ArrayList<namevaluepair>(1);
params.add(new BasicNameValuePair("testxml", testXml.toString()));
//リクエスト
String s = "";
try {
req.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
HttpResponse res = httpClient.execute(req);
int status = res.getStatusLine().getStatusCode();
if (status == HttpStatus.SC_OK) {
s = EntityUtils.toString(res.getEntity());
} else {
s = "接続失敗" + String.valueOf(status);
}
} catch (Exception e) {
e.printStackTrace();
}
Toast.makeText(MainActivity.this, s, Toast.LENGTH_LONG).show();
}
}
マニフェストファイルの修正
インターネットへの接続を許可する設定を追加します。
<uses-permission android:name="android.permission.INTERNET" />
実行結果
0 件のコメント:
コメントを投稿