私はアンドロイドは初めてですが、今ではAndroidでより多くのコーディングを行っています。今、疑問があります。Android と SQL Lte を使用して Android データベース アプリケーションを作成しました。しかし、SQL Lite はクライアント サイト データベースです。しかし今、私の要件は、アプリケーションを SQL Server に接続するために、SQL Server のようなデータベースが欲しいということです。たとえば、考えてみましょう。私は WCF について知っています。次のような機能を持つWCFサービスを作成します。Androidがlocalhostに応答しないため、IISでWCFをホストしたので、IISでWCFをホストしました
Public string check(string username,string password)
{
SQLConnection con=new SQLConnection("Data Source=.;Database=test;Integrated Security=true");
SQLDataAdapeter ad=new SQLDataAdapter("select * from table where usrename='"+username+"'and password='"+password+"'");
Dataset ds=new Dataset();
ad.fill(ds,"table");
if(ds.Tables[0].Rows.Count>0)
{
return "true";
}
else
{
return "false";
}
}
このサービスを Android アプリケーションのコーディングで使用できるように、ローカル ホストで WCF をホストしました。
と同じように:
HttpGet httpGet=new HttpGet("http://192.168.1.111:8083/Service1.svc/checkLogin?username="+UserName+"&password="+Password);
//Get the response
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
InputStream stream=httpEntity.getContent();
ただし、コードは正しいのですが、ここでは httpEntity を取得していません。私はこのエンティティを取得し、次のような関数を使用して文字列に変換したいと考えています:
public static String convertStreamToString(InputStream is)
{
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
}
catch (IOException e) {
e.printStackTrace();
}
finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
ただし、文字列値は返されず、デバッガーはキャッチ ポイントに進みます。では、WCF から文字列形式で結果を取得するにはどうすればよいでしょうか?