Android集合SSH構築サーバクライアント要求
弟は以前J 2 EEを学んで、プロジェクトはandroidを開発する必要があるため、臨時に1週間以上補充して、主に携帯電話の端とサーバーの端がインタラクティブで、双方向に開発しました.
まずサーバ側ではSSHフレームワークを採用し、struts 2はjsonプラグインを集合し、サーバとクライアントの情報を交互に採用したJSONを伝送し、サーバ側でStruts 2を使用したので、JSONプラグインを1つ装着しました.そうすると、サービス側の情報をJSON形式で携帯電話側に送信しました~~以下はコードです.レンガを撮ってください~~
まず、サーバ側にSSHフレームワークを構築し、具体的な詳細は以下の通りではない.
携帯電話端末のコードは以下の通りです.
まず、携帯電話側にはキャッシュクラスがあり、主に携帯電話側がアクセスする必要があるデータをキャッシュするために使用されます.このようなメリットは、携帯電話とサーバーの相互作用を節約し、単一の例で実現することができます.
次に携帯電話側のプロトコルを書き始め、ユーザーはサーバーに要求を送信し、同時にサーバーは携帯電話側の情報にフィードバックした.
次にログインプロトコルです.ここではログインをシミュレートして使用するクラスにすぎません.参考にしてください.
次に、ユーザー情報を保存するために主に使用されるUserエンティティークラスです.
最後にLoginActivityで登録を判断するコードです.詳細コードはもう貼られません.登録を判断するコードは1つだけ貼られています.
以上のコードは皆さんと共有するために、携帯電話の端末とサーバーの双方向開発がとても爽やかだと感じています~~同時にandroidへの興味が大幅に向上して、それは私が想像していたほど難しくありません~~~
まずサーバ側ではSSHフレームワークを採用し、struts 2はjsonプラグインを集合し、サーバとクライアントの情報を交互に採用したJSONを伝送し、サーバ側でStruts 2を使用したので、JSONプラグインを1つ装着しました.そうすると、サービス側の情報をJSON形式で携帯電話側に送信しました~~以下はコードです.レンガを撮ってください~~
まず、サーバ側にSSHフレームワークを構築し、具体的な詳細は以下の通りではない.
<package name="login" extends="json-default">
<action name="login" class="com.jclick.test.LoginAction" method="login">
<result type="json"><paramname="includeProperties">result</param></result>
</action>
</package>
携帯電話端末のコードは以下の通りです.
まず、携帯電話側にはキャッシュクラスがあり、主に携帯電話側がアクセスする必要があるデータをキャッシュするために使用されます.このようなメリットは、携帯電話とサーバーの相互作用を節約し、単一の例で実現することができます.
package com.jclick.cache;
import com.jclick.bean.User;
public class Cache {
private User User;
private Cache(){
}
/** */
private static class CacheHolder{
private static final Cache INSTANCE = new Cache();
}
public Cache getInstance(){
return CacheHolder.INSTANCE;
}
public User getUser() {
return User;
}
public void setUser(User User) {
this.User = User;
}
}
次に携帯電話側のプロトコルを書き始め、ユーザーはサーバーに要求を送信し、同時にサーバーは携帯電話側の情報にフィードバックした.
package com.jclick.protocol;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
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.json.JSONException;
import org.json.JSONObject;
public class BaseProtocol {
private StringBuilder sb = new StringBuilder();
private HttpClient httpClient;
private HttpPost httpRequest;
private HttpResponse response;
private List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
BaseProtocol() {
httpClient = new DefaultHttpClient();
}
/**
*
*
* @param url
* @throws Exception
*/
protected void pack(String url) throws Exception {
httpClient = new DefaultHttpClient();
httpRequest = new HttpPost(url);
httpRequest.setEntity(new UrlEncodedFormEntity(nameValuePair));
response = httpClient.execute(httpRequest);
}
/**
*
*
* @param url
* @return
* @throws Exception
*/
protected void parse() throws Exception {
// TODO 500 200
if (response.getStatusLine().getStatusCode() == 200) {
BufferedReader bufferedReader2 = new BufferedReader(
new InputStreamReader(response.getEntity().getContent()));
for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2
.readLine()) {
sb.append(s);
}
}
}
/**
*
*
* @param key
* @param value
*/
public void addNameValuePair(String key, String value) {
nameValuePair.add(new BasicNameValuePair(key, value));
}
/**
* JSONObject
*
* @return
* @throws JSONException
*/
public JSONObject getJSON() throws JSONException {
return new JSONObject(sb.toString());
}
}
次にログインプロトコルです.ここではログインをシミュレートして使用するクラスにすぎません.参考にしてください.
package com.jclick.protocol;
import org.json.JSONObject;
import com.jclick.bean.User;
public class LoginProtocol extends BaseProtocol{
private final static String URL = "http://localhost:8080/test/login";
public boolean checkLogin(User usr){
try {
pack(URL);
parse();
JSONObject obj = this.getJSON();
if(obj.getString("result").equals("failed")){
return false;
}else{
return true;
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
次に、ユーザー情報を保存するために主に使用されるUserエンティティークラスです.
package com.jclick.bean;
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
最後にLoginActivityで登録を判断するコードです.詳細コードはもう貼られません.登録を判断するコードは1つだけ貼られています.
private void checkedData(){
username = ((EditText)findViewById(R.id.username)).getText().toString();
password = ((EditText)findViewById(R.id.password)).getText().toString();
User user = new User();
user.setUsername(username);
user.setPassword(password);
LoginProtocol login = new LoginProtocol();
boolean result = login.checkLogin(user);
if(result){ SpiderCache.getInstance().setUserSession(user);
Toast.makeText(getApplicationContext(), " ", 1000).show();
Intent intent = new Intent ();
intent.setClass(LoginActivity.this,WelcomeActivity.class);
startActivity(intent);
}else{ Toast.makeText(LoginActivity.this," , !",1000).show();
}
}
以上のコードは皆さんと共有するために、携帯電話の端末とサーバーの双方向開発がとても爽やかだと感じています~~同時にandroidへの興味が大幅に向上して、それは私が想像していたほど難しくありません~~~