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(" "); //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(); } }"); 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("
マニフェストファイルの修正
インターネットへの接続を許可する設定を追加します。
<uses-permission android:name="android.permission.INTERNET" />
実行結果
0 件のコメント:
コメントを投稿