私はphpでパラメータを取得するように作成し、Getメソッドを使用してリンクに送信しています。例: " http://example.com/subscribe/?act=SubscribeForEmail&EmailAddress= " 。
ユーザーが edittext (aa@gmail.com など) を入力して送信すると、次のように送信されます。
http://example.com/subscribe/?act=SubscribeForEmail&EmailAddress=aa@gmail.com . どうですか
アンドロイドで可能ですか?
これを例に使ってみました。しかし、それは強制的に閉じます
コードは次のとおりです。
EditText Ename;
Button btncreate;
String n = null;
String contentOfMyInputStream1;
String output = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Ename = (EditText)findViewById(R.id.msgTextField);
btncreate = (Button)findViewById(R.id.sendButton);
btncreate.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onClick(View v) {
String st1;
st1 = Ename.getText().toString();
try {
output = "http://example.com/subscribe/?act=SubscribeForEmail&EmailAddress="+st1;
downloadUrl(output);//request been send
}
catch (IOException e) {
e.printStackTrace();
}
if (output != null) {
Toast.makeText(this, output, Toast.LENGTH_SHORT).show();
}
}
public String downloadUrl(String url) throws IOException {
HttpClient httpclient = new DefaultHttpClient();
HttpRequestBase httpRequest = null;
HttpResponse httpResponse = null;
InputStream inputStream = null;
String response = "";
StringBuffer buffer = new StringBuffer();
httpRequest = new HttpGet(url);
httpResponse = httpclient.execute(httpRequest);
inputStream = httpResponse.getEntity().getContent();
int contentLength = (int) httpResponse.getEntity().getContentLength();
if (contentLength < 0) {
// Log.e(TAG, "The HTTP response is too long.");
}
byte[] data = new byte[256];
int len = 0;
while (-1 != (len = inputStream.read(data)) ) {
buffer.append(new String(data, 0, len));
}
inputStream.close();
response = buffer.toString();
return response;
}
次のようにエラーが発生しています
Fatal Exception:main
android.os.NetworkOnMainTreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
at java.net.InetAddress.lookHostByName(InetAddress.java:385)
at java.net.InetAddress.getAllByNameImpl(InetAddress.java:385)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
問題を解決するのを手伝ってください。
前もって感謝します。