1
localhostで作業しています。ユーザー名とパスワードを取得し、ユーザーを認証するWebサービスを.NETで作成しました。私のWebサービスコードはhttp:// pastebinです。 com/GQGtKSqqと私のログ猫はこれを示しています:http://pastebin.com/czs5Fbc3SOAP Webサービスが間違った応答を返す
私のログcatは、出力が私のWebサービスのcatchステートメントからのステートメントであることを示しています。 "成功"ブロックを試してください。 私のAndroidアプリからWebサービスを呼び出すとき、ブラウザでWebサービスを実行しているときと同じ応答が得られません。私はSQLデータベースにユーザー名とパスワードを格納しています。誰でも自分の問題を解決することができますか?次のように私のアンドロイドのコードは次のとおりです。この
package com.demo;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.AndroidHttpTransport;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class Login extends Activity {
private static final String SOAP_ACTION = "http://tempuri.org/GetLoginDetails";
private static final String METHOD_NAME = "GetLoginDetails";
private static final String NAMESPACE = "http://tempuri.org/";
private static final String URL = "http://10.0.2.2/testlogin/Service1.asmx";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button signin = (Button) findViewById(R.id.regsubmitbtn);
signin.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String user_id;
String password;
EditText etxt_user = (EditText) findViewById(R.id.usereditlog);
user_id = etxt_user.getText().toString();
EditText etxt_password = (EditText) findViewById(R.id.pwdeditlog);
password = etxt_password.getText().toString();
new LoginTask().execute();
}
});
}
private class LoginTask extends AsyncTask<Void, Void, Void> {
String auth = null;
private final ProgressDialog dialog = new ProgressDialog(
Login.this);
protected void onPreExecute() {
this.dialog.setMessage("Logging in...");
this.dialog.show();
}
protected Void doInBackground(final Void... unused) {
auth = doLogin("hello", "hello");
return null; // don't interact with the ui!
}
protected void onPostExecute(Void result) {
if (this.dialog.isShowing()) {
this.dialog.dismiss();
}
System.out.println(auth);
}
}
private String doLogin(String user_id, String password) {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("user", user_id);
request.addProperty("password", password);
SoapSerializationEnvelope soapenvelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
soapenvelope.dotNet = true; // Set this variable to true for
soapenvelope.setOutputSoapObject(request);
AndroidHttpTransport httptransport = new AndroidHttpTransport(URL);
try {
httptransport.call(SOAP_ACTION, soapenvelope);
SoapPrimitive resultstring = (SoapPrimitive) soapenvelope
.getResponse();
Log.d("Authenticaion", resultstring+"");
System.out.println(resultstring);
return resultstring + "";
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
}
おかげでたくさん! :D –