Android
もともと設計された Web サービスにアプリを接続しようとしてiOS
いますが、それが可能かどうかわかりません。私はこの Web サービスも設計していないので、私のものではないこのコードを調べて、ちょっといじっているだけです。現在の Web サービスは で記述され、PHP
および を使用SOAP
しWSDL
ます。この Web サービスに接続できる場合ksoap2
は、より良い代替手段が見つからない限り、使用を試みます。この投稿では多くのリンクを使用します。リンクがないと、不快な量のコードを目にすることになるからです。
とにかく、ここで一言で言えば問題です。Web サービス URL の
URL リストのこのリストがあり、そのリストの外観から、これが含まれている iphoneview/iphone_get_details.php
にログイン要求を行う必要があります。get_detailsただし、このコードを使用すると
class LogMeIn extends AsyncTask<String, Void, String> {
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(
"http://www.fakesite.com/myv2/iphoneview/iphone_get_details.php");
protected String doInBackground(String... urls) {
try {
username = un.getText().toString();
password = pw.getText().toString();
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
2);
nameValuePairs
.add(new BasicNameValuePair("username", username));
nameValuePairs
.add(new BasicNameValuePair("password", password));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = client.execute(post);
String res = inputStream(response.getEntity().getContent())
.toString();
Log.v("RESPONSE", res);
// if username and password are valid, launch main activity
if (res.toString() == "1") {
Intent logIn = new Intent(getApplicationContext(),
Main.class);
startActivity(logIn);
}
// send the user a message saying the login failed
else {
runOnUiThread(new Runnable() {
public void run() {
pw.setText("");
fail.setText(R.string.fail);
}
});
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String file_url) {
}
}
私が返すのはこれだけです
05-25 13:57:21.292: V/RESPONSE(5871): <?xml version='1.0' encoding='UTF-8'?><!DOCTYPE plist PUBLIC '-//Apple//DTD PLIST 1.0//EN' 'http://www.apple.com/DTDs/PropertyList-1.0.dtd'><plist version='1.0'><dict><key>iId</key><string>0</string><key>itemChildren</key><array></array></dict></plist>
この応答がどこから来ているかはわかっています。iphoneview/iphone_get_details.phpの一番下にあります。問題は、それが原因かどうかわからないことです
SOAP
これをリクエストでラップする必要があります- このコードは使えません
- 間違ったファイルに接続しています (疑います)
- 上記のすべておよび/またはその他
今の常識では、現在の iphone_get_details.php ファイルを見ると、「1」または「true」のどちらの応答も受信しないことがわかります。実際のところ、そのファイルは大量の情報を送り返しているように見えますが、本質的には、正しいログイン情報に正しく接続されていることを確認するために必要なのは「1」または「true」だけです。誰かがこの質問に目を通す時間があれば、私は感謝します.